MySql Suchbefehl "LIKE" mit PHP

wuiso

Grünschnabel
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.

code:</head>
<body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<h1>Suchformular<hr noshade size="2" color="#0080FF"></h1>
<p> </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"> <input type="reset" name="" value="Löchen"></form> </td>
<td></td>
</tr>
</table>


ein PHP-Script lautet dazu

code:
<?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
 
Hallo

welchen feher gipt er dir den aus ?
und warum speicherst du deine sachen in variablen wen du sie auch direckt hinschreiben kannst haste besser übersicht
PHP:
<?php
$verbindung = mysql_connect ("Servername",
"Username", "Passwort")
or die ("keine Verbindung möglich.
 Benutzername oder Passwort sind falsch");

mysql_select_db("Datenbankenname")
or die ("Die Datenbank existiert nicht.");
?>

Und wen du was durchsuchen list :

$abfrage = "SELECT * FROM term WHERE id != '$such";

verstehste dan schleichen sich auch keine kleinen fehler ein weil du einfach alles besser sihst !

Gruß no-Body
 
Fehler-Meldung-Lautet!

Es zeigt mir immer, das kein Begriff, das gesuchte Begriff, vorhanden ist. Obwohl dieses Begriff vorhanden ist.
:confused:
 
SQL:
SELECT * FROM $table WHERE $spalte1, $spalte2 LIKE '%$such%'

Ist auch syntaktisch einfach falsch.

SQL:
SELECT `field` 
FROM `table`
WHERE
`spalte1` LIKE '%string%'
AND `spalte2` LIKE '%string%'

Wie du siehst können nicht zwei Spalten gleichzeitig abgefragt werden, sondern müssen über einen Operator verknüpft werden, z. B. AND oder OR.
Noch dazu müssen Strings maskiert werden, mit einfachen Anführungszeichen.
Mehr Infos zur Syntax kriegst du hier.
 
Wäre dieser Cod geeigneter?
Code:
$sql = 'SELECT DISTINCT * FROM `begriffe` WHERE `term` LIKE \'%$wert%\' AND `text` LIKE CONVERT(_utf8 \'%$wert%\' USING ucs2) COLLATE ucs2_bin';
Der Code ist in phpMyAdmin von Sql in PHP Code umgewandelt worden.
 
Zurück