Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
MySql Suchbefehl "LIKE" mit PHP [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
MySql Suchbefehl "LIKE" mit PHP


 
Wuiso
04-05-2008, 22:01 
 
Ich Brauche dringend Hilfe

Ich brauche eine PHP-Seite, die eine Datenbank durchsucht und mir die Ergebnisse auflistet.
Ich habe eine HTML seite Alsi Maske erstellt.

</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<h1>Suchformular<hr noshade size="2" color="#0080FF"></h1>
<p>&nbsp;&nbsp;</p>
<table>
<tr>
<td colspan="2"><form action="such.php" method="POST" target="">Such in der Datenbank <b><U>Von Wolkenstein </b></u></td>
</tr>
<tr>
<td>Begriff </td>
<td>:<input type="Text" name="wert" value="" size="25"> </td>
</tr>
<tr>
<td>Datenbank</td>
<td><select name="datenbank" size="1">
<option value="begriffe">Begriffe</option>
<option value="name">Name</option>
<option value="ort">Ort</option>
<option value="philo">Philosophie</option>
<option value="history">Geschichte</option>
<option value="lit">Literatur</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"><input type="Submit" name="" value="Suchen">&nbsp;&nbsp;<input type="reset" name="" value="Löchen"></form> </td>
<td></td>
</tr>
</table>

ein PHP-Script lautet dazu

<?php
$server = "localhost"; $user = "ich"; $pass = "wort";
$database = "knorr";
$table = $_POST[datenbank];
$such = $_POST[wert];
$spalte1 = "term";
$spalte2 = "text";



$verb = mysql_connect($server, $user, $pass)
or die ("Konnte keine Verbindung zur Datenbank herstellen!");
mysql_select_db($database, $verb);
$sql = "SELECT * FROM $table WHERE $spalte1, $spalte2 LIKE %$such%";
$query = mysql_query($sql);
if ($query == 0)
echo "Das Begriff <b>$such</b> wurde nicht in Tabelle-$table nicht gefunden!";

else
{
print_result_table($query);
}

mysql_close($verb);
?>


Das Problem ist, das es nicht funktioniert.
Ich bitte um Hilfe


MFG
WUISO

 
$_Baker
04-05-2008, 23:12 
 
$query = mysql_query($sql);
if ($query == 0)
Eine Resource auf einen Integer zu prüfen ist ja nicht wirklich sinnvoll:

http://de3.php.net/manual/de/function.mysql-num-rows.php wäre die nächste Lösung. Noch einfacher wäre es, $query auf false zu überprüfen.

Funzt nicht ist übrigens keine Fehlerbeschreibung, die Leute hier wollen das sehn, was PHP dazu ausgibt bzw den Inhalt der Variablen.
http://de3.php.net/manual/de/function.var-dump.php ost dir dabei gerne behilflich :D

 
Wuiso
05-05-2008, 17:30 
 
Das Problem liegt nicht an die Überprüfung von Integer, sondern die Begriffe werden nicht gefunden. Das fehler könnt im Syntax sein. denn es zeigt mir immer das $query == 0 ist.

==> Begriff wurde nicht gefunden.

if ($query == 0)
echo "Das Begriff <b>$such</b> wurde nicht in Tabelle-$table nicht gefunden!";

 
onemorenerd
05-05-2008, 17:42 
 
mysql_error()

 
Kropff
05-05-2008, 17:47 
 
SELECT * FROM $table WHERE $spalte1, $spalte2 LIKE %$such%
das kann ja wohl nichts werden.

gruß
peter

 
litterauspirna
05-05-2008, 18:07 
 
<?php
SELECT * FROM $table WHERE $spalte1, $spalte2 LIKE %$such%

?>


Stimmt denn mit * gibst du an er soll alle datensätze durchforsten und in der where clausel gibst du einzelne spalten an? Ja was soll er denn nun machen alles absuchen oder nur vereinzelte spezielle spalten? Und zum zweiten warum dann spaltennamen als variable?

 
Blackgreetz
05-05-2008, 18:46 
 
Original geschrieben von litterauspirna

<?php
SELECT * FROM $table WHERE $spalte1, $spalte2 LIKE %$such%

?>


Stimmt denn mit * gibst du an er soll alle datensätze durchforsten und in der where clausel gibst du einzelne spalten an? Ja was soll er denn nun machen alles absuchen oder nur vereinzelte spezielle spalten? Und zum zweiten warum dann spaltennamen als variable?

Ansich ist der Query zumindest bis zum WHERE okay.
Das danach ist falsch.. aber trotzdem kann er alles selecten und hinten eim where spalten angeben (ist ja irgendwie logisch oder?)

mfg

 
litterauspirna
05-05-2008, 18:54 
 
Ja klar. Ich habe mich falsch ausgedrückt. Ich meinte die Art und weise wie er es macht! Sorry!

 
Wuiso
05-05-2008, 21:06 
 
was soll ich eigentlich geben, wenn meine Datenbank mit Tabellen komplett durchgesucht werden soll.
Ich habe in der Datenbank nur Tabellen, diese sollten abgesucht werden.
Wenn man einen Begriff gibt, dann soll es in der Datenbank gesucht werden und auf gelistet werden.

mfg
Hilfe ist angefragt.:confused:


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:28 Uhr.