MySQLi PHP-Abfrage mit Sortierung durch order by

Ergebnisse mit select und order sortieren

Neben der Filtermöglichkeit, um aus großen Datenmengen bestimmte Datensätze heraussuchen zu können, sind auch Sortierungen wichtig. Das gilt vor allem für Projekte, in denen die Aktualität eine Rolle spielt und man nach Datum sortieren will. Eine weitere Anwendung sind Listen, die alphabetisch angeordnet sein sollen. Hier hilft der Zusatz order weiter.

Die Sortierung wird durch den Zusatz order by organisiert und es gibt dabei zwei Richtungen mit desc und asc. ASC steht für aufsteigend und DESC für absteigen, wobei es vom Feld abhängig ist, wie dies dann abläuft. Man kann Zahlenfelder genauso sortieren wie auch Namensfelder oder ein Datumsfeld.

Select-Abfrage mit Sortierung unter PHP

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

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

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

Der Ausgangspunkt ist wieder die übliche Abfrage aller Adressen aus der entsprechenden Tabelle. Die Datensätze werden so ausgegeben, wie sie ehemals eingegeben wurden - vom ersten bis zum letzten Datensatz.

Das ist aber nur bedingt nützlich, denn man will eine alphabetische Anordnung haben. Das geht mit dem Duo PHP und MySQLi denkbar einfach:

$sql = "select * from adressen order by nachname asc";
    if($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()) {
                     echo "

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

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

Das war es auch schon. Der Zusatz order by nachname asc besagt, dass das Ergebnis nach dem Nachnamen sortiert werden soll und zwar in aufsteigender Reihenfolge. Es kann also jetzt sein, dass der letzte Datensatz vor dem ersten gelistet wird, weil dies der Reihung der Namen entspricht.

Erweiterung der Sortierung

$sql = "select * from adressen order by nachname asc, vorname asc";
    if($result = $mysqli->query($sql)) {
    while($obj = $result->fetch_object()) {
                     echo "

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

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

Man kann die Sortierung noch verfeinern. Sortiert man nach Postleitzahl oder Datum, gibt es keine weitere Möglichkeit, aber wenn man nach dem Nachnamen sortiert, gibt es doch ein Problem und zwar die Tatsache, dass die Margit vor der Anna kommen könnte. Also erweitert man die Vorgabe durch order by nachname asc, vorname asc.

Das heißt, dass zuerst die Ergebnisse nach dem Nachnamen in aufsteigender Reihenfolge sortiert werden und danach als zweiten Schritt auch nach dem Vornamen in ebenfalls aufsteigender Reihenfolge. Dann hat man alle Maiers beisammen, die vor den Müllers und hinter den Hubers kommen, aber gleichzeitig stimmt auch die Reihenfolge der Vornamen.

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