MySQi PHP-Abfrage mit Bedingung

Select mit Filter: die erste Erweiterung

Das Basisbeispiel zur kleinen Beispieldatenbank war eine Abfrage ohne Filter, die durch das Hinzufügen des Sterns auch alle Datenfelder abgefragt hat. Somit wurde der komplette Inhalt aus der Datenbank eingelesen. Nun wollen wir die bereits in der Theorie bekannte Möglichkeit der Filter prüfen.

In den Grundlagen wurde dargestellt, dass man den select-Befehl mit where ergänzen kann, um die Datensätze einzuschränken, die wirklich angezeigt werden sollen. Dabei stehen sehr viele Möglichkeiten zur Verfügung und das Verständnis ist schnell aufgebaut, egal ob bei Zahlen oder bei Text.

Mit PHP und MySQLi Abfragen mit Filter setzen

$sql = "select * from adressen where nachname = 'Maier'";
    if($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()) {
                     echo "

".$obj->vorname." ".$obj->nachname."

";
                    }
    } else { echo mysqli_error($mysqli);exit; }

Im Grunde ist dies die gleiche Abfrage wie beim Beispiel mit der Fehlerkontrolle, nur dass ein Zusatz eingebaut wurde - die Abfrage nach den Nachnamen, die genau Maier heißen. Bei der Vorstellung der Befehle wurde schon viel auf den SQL-Befehl select eingegangen und so sollte klar sein, dass

where nachname = 'Maier'

bedeutet, dass alle Maiers herauskommen werden, nicht aber zum Beispiel der Herbert Meier, weil der schreibt sich mit e statt mit a und Abfragen mit dem =-Zeichen erfordern präzise den gleichen Inhalt. Also Frau Elisbath Maierhofer würde auch nicht gelistet werden, weil sie nicht genau Maier heißt.

Daher ist die präzise Abfrage bei Namen wohl nur in bestimmten Fällen sinnvoll. Praktischer ist diese Lösung etwa bei der Postleitzahl, denn bezogen auf die österreichischen Postleitzahlen mit vier Stellen wäre folgendes denkbar:

$sql = "select * from adressen where plz = 1030";
    if($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()) {
                     echo "

".$obj->vorname." ".$obj->nachname."

";
                    }
    } else { echo mysqli_error($mysqli);exit; }

In diesem Fall werden alle Datensätze ergo Adressen gelistet, die in der Postleitzahl 1030 angegeben haben, die PLZ für den 3. Bezirk von Wien. Es ist wahrscheinlicher, dass man nach einem Ort oder nach ähnlichen Daten sucht als genau nach einem bestimmten Namen, es sei denn, es gibt eine entsprechende Situation.

Lesen Sie auch

So richtig aus dem Vollen kann man dann schöpfen, wenn man die Programmiersprache PHP mit dem System der MySQLi-Datenbank verknüpft. Der SQL-Befehlssatz bleibt bestehen, wird aber durch die PHP-Umgebung ummantelt, damit beide kommunizieren können: die Datenbank weiß, was Sache ist und PHP versteht die Antwort. MySQL + PHP bedeutet, dass man direkt vom Skript aus auf die Daten zugreifen kann.

Die Grundvoraussetzung ist einmal das Anlegen einer Datenbank, was auch von PHP aus möglich ist und dann braucht es die Verbindung zur Datenbank.

Damit ist die Grundbasis gelegt und man kann Tabellen anlegen und die Daten speichern. Dabei kann mit mysqli_insert_id die aktuelle laufende Nummer für weitere Aktionen nützlich sein und wichtig ist das Verständnis mit mysqli_close, um nicht mehr gebrauchte Verbindungen zu beenden. Wichtig ist aber auch die richtige Schreibweise beim Arbeiten mit den Daten.

Das Herzstück ist aber die Abfrage. Zweifelsohne braucht man delete und andere Befehle auch, um zu manipulieren, aber mit select kann man verschiedenste Abfragen durchführen wie nach Kriterium, Menge oder auch als Stringabfrage samt Sortierungsangabe.

Diesen Artikel teilen

Kategorien

Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen

Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel