MySQL | Like Operator
Ein typisches Beispiel für eine Anwendung im Internet ist das
Suchen
von Informationen über Html Formulare.
Hier bietet sich der Einsatz des like operators in sql
an.
Mit dem like operator können Texteingaben in Formularen abgefragt
und mit dem Inhalt der Datenbank abgeglichen und per PHP Script
ausgegeben werden.
Ein simples Beispiel zum like operator
Ein schlichtes Formular mit einem Eingabefeld, in welchem nur ein
Buchstabe
eingegeben werden muss und als Ergebnis alle Städte sortiert
aufgelistet werden,
die mit diesem Buchstaben beginnen.
Beispiel - Eingabeformular
Programmcode für das Formular:
<form action="script.php" method="post">
<input name="name"> <br/>
<input type="submit" value="senden"/ >
<input type="reset" value="löschen"/>
</form>
Verarbeitungsscript in PHP
<?phpecho "Datenbankabfrage<br />";
mysql_connect("","root");
mysql_select_db("staedte");
$sqlab="select * from orte";
$sqlab.=" where ort like'".$_POST["name"]."%'";
$result=mysql_query($sqlab);
$num=mysql_num_rows($result);if($num==0)
{
echo "Leider keine Daten gefunden.";
}
else
{
echo "<table width='90%' border='1'>";
echo "<tr><td>Ort</td><td>PLZ</td><td>Einwohner</td>";
echo "<td>Einwohnerstand</td>";
echo "<td>Bundesland</td></tr>";while($dsatz=mysql_fetch_assoc($result))
{
echo "<tr>";
echo "<td>".$dsatz["ort"]."</td>";
echo "<td>".$dsatz["plz"]."</td>";
echo "<td>".$dsatz["einwohner"]."</td>";
echo "<td>".$dsatz["einwohnerstand"]."</td>";
echo "<td>".$dsatz["bundesland"]."</td>";
echo "</tr>";
}
echo "</table>";
echo $num ." Datensätze gefunden.";
}
?>
Würde der Anwender nun den Buchstaben "G" in das
Formulartextfeld eingeben,
würden alle Städte, die mit einem "G" anfangen alphabetisch
sortiert in einer
Html Tabelle mit Gitter (zwecks besserer Lesbarkeit)
ausgegeben werden.
Hier in diesem Falle wäre auch eine direkte Suchabfrage nach
dem Stadtnamen
Gütersloh möglich. Angezeigt werden dann unten genannte
Datenfelder und Inhalte.
Ausgabe der Tabelle orte der Datenbank staedte
|
Ort
|
PLZ
|
Einwohner
|
Einwohnerstand
|
Bundesland
|
|
Gütersloh
|
33330
|
96343
|
2006-01-01
|
NRW
|
Der Operator like bietet sich bei Suchen nach ganzen oder
nach Teilen einer Zeichenkette an.
In Kombination mit Wildcards werden Platzhalter bei der Suche eingesetzt.
Das % Zeichen steht dabei für eine unbekannte beliebige
Anzahl von Zeichen.
Der Unterstrich _ steht für genau ein Zeichen.
Wichtig ist, dass die zu suchende Zeichenkette in einfache Hochkommata
gesetzt wird.
In diesem Beispiel wurde dem like Operator der Inhalt des Formularfeldes
als Wert übergeben.
Praktisch wird die Eingabe des Nutzers so abgefragt und der SQL Anweisung
als
Suchwert übergeben.