ConSoleM
Grünschnabel
Hi. Ich hab mir ein Suchformular gebastelt, was drei Spalten einer Tabelle in einer MySQL Datendank durchsucht. Nun bin ich soweit, dass der User eine Eingabe machen kann und es werden die Daten angezeigt. Nun hätte ich aber gern, dass der User auch 2 Begriffe eingeben kann und es nur Datensätze angezeigt werden, wo beide Begriffe eine Übereinstimmung finden. Mein Problem: wenn ich per explode() die Eingabe auseinander nehme, funktioniert das ganze nicht, wenn der User z.B. den Straßennamen "An der Post" angibt, da dies ja 3 Strings wären und in der DB nirgends "Post" allein steht. Kann man evtl. eine Datenbank so durchsuchen, dass die Zeichenketten irgendwo mitten im Wort stehen? Geht das? Wenn ja, bitte helft mir.
Hier mal der bisherige Code meiner Datei:
Hier mal der bisherige Code meiner Datei:
Code:
<?php
$get = htmlspecialchars($_GET["SearchInput"]); //HIER KOMMT DER STRING
if(empty($get)){
exit;
}
// mysql blabla
define('MYSQL_HOST', 'localhost');
define('MYSQL_USER', '...);
define('MYSQL_PASS', '...');
define('MYSQL_DATABASE', 'dbTest);
// mysql conntecten
$connect = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Es konnte keine Verbindung zur Datenbank aufgebaut werden:".mysql_error());
mysql_select_db(MYSQL_DATABASE) OR die("Es konnte keine Datenbank ausgeweahlt werden:".mysql_error());
$sql = "SELECT * FROM MH_Adressen GROUP BY strasse";
$result = mysql_query($sql, $connect);
echo "<ul>";
while($row = mysql_fetch_object($result)){
$pattern = "/^".$get."/i";
if(preg_match($pattern, $row->strasse) || preg_match($pattern, $row->ort) || preg_match($pattern, $row->ortsteil)){ //wenn Formulareingabe übereinstimmt, dann...
echo "
<li>
<form method='get' action='tuewas.php' accept-charset='iso-8859-2'>
<input type='hidden' value='".htmlentities($row->strasse)."' name='strasse'></input>
<input type='hidden' value='".htmlentities($row->ortsteil)."' name='ortsteil'></input>
<input type='hidden' value='".htmlentities($row->ort)."' name='ort'></input>
<input type='submit' value='".htmlentities($row->strasse).", ";
if($row->ort == $row->ortsteil || $row->ortsteil =="")
{
echo htmlentities($row->ort);
}
else {
echo htmlentities($row->ort)." (OT ".htmlentities($row->ortsteil).")";
}
echo "'></input>
</form></li>";
} //if zu
} //while zu
echo "</ul>";
?>