Ein wesentlicher Faktor bei der Abfrage von MySQLi-Datentabellen ist die Menge der Ergebnisse. Sie ist wichtig, um die Dimension feststellen zu können und um bei Funktionen das Ergebnis anzeigen zu können, beispielsweise bei der Angabe, wie viele Ergebnisse die Suche finden konnte.
Bisher haben wir verschiedene Abfragen mit der Oder- bzw. der Und-Funktion gelöst, haben diese Varianten auch verknüpft, doppelte Ergebnisse unterbunden oder andere Filter eingesetzt - aber wie viele Ergebnisse wir erhalten haben, wussten wir bisher nicht. Dafür gibt es aber ein einfaches Werkzeug, nämlich count.
Webhosting mit viel Software bei Alfahosting (Affiliate-Link)
Die Umsetzung ist eine recht einfache, denn man braucht nur count als Befehlswort sowie eine Angabe, was gezählt werden soll, das kann ein Feld sein oder alles, was gefunden wurde.
select count(plz) from adressen
liefert die Anzahl der Zeilen, in denen im Feld der Postleitzahl ein Eintrag steht. Das bedeutet, das Zeilen, in denen in diesem Feld nichts steht, ignoriert werden. Nun hat man bei dieser Abfrage aber das Problem, dass es auch doppelte Einträge geben kann. Will man wissen, wie viele verschiedene Postleitzahlen gespeichert sind, muss distinct hinzugefügt werden.
select count(distinct plz) from adressen
Webhosting bei Alfahosting - jetzt gratis testen! (Affiliate-Link)
Damit werden doppelt auftauchende Postleitzahlen vermieden und man erhält die Summe aller Postleitzahlen, die in der Tabelle vorliegen. Klassischer als eine solche Abfrage ist aber die folgende.
select count(*) as summe from adressen
Hier wird mit count die Summe der Zeilen gezählt und außerdem gleich mit einem Feldnamen verbunden. Das Feld summe gibt es nicht wirklich, es kann später aber verwendet werden, um die Gesamtzeilen in einer Variable zu nutzen. Die Gesamtzahl - egal ob in dieser Form abgefragt oder wie oben mit einem Feld - ist dann besonders wichtig, wenn man die Ergebnisse auf Seiten aufteilen möchte - denken Sie an die Blätterfunktion der Google-Suchmaschine.
Buchtipp: Einstieg in PHP 8 und MySQL (Amazon)*
*= Affiliate-Link; bei Kauf unterstützen Sie die Plattform
MySQLi basiert auf SQL und daher gibt es gar nicht so viele Befehle wie etwa in einer richtigen Programmiersprache, aber es gibt zu den Befehlen viele Zusätze, speziell bei der Abfrage mit select. Es gibt aber auch Befehle, die man kaum braucht und dazu gehört create zum Anlegen von Datenbanken und Datentabellen oder drop zum Löschen selbiger. Auch alter als Befehl zum Ändern wird selten benötigt.
Dann gibt es Anordnungen, die man sehr oft oder gelegentlich braucht, ganz nach Situation. Mit delete kann man Datensätze löschen und das ist in einem Skript immer wieder der Fall, etwa alte Statistikdaten. Und mit insert kann man neue Datensätze anlegen, zum Beispiel nach dem Eintragen im Geästebuch.
Der große Akteur auf Ebene der MySQLi-Datenbank auch von PHP aus ist der Befehl select. Er dient dazu, die vorhandenen Daten zu untersuchen und es gibt eine ganze Reihe an Möglichkeiten, wie dies erfolgen kann. Mit Filter, mit Begrenzungen oder auch mit verknüpften Kriterien, um die richtigen Datensätze zu finden. Selbst rechnen ist damit möglich.
Weitere Befehle gibt es mit Drop und Truncate, wobei Drop eine Tabelle komplett löschen kann oder auch Datenfelder aus einer Tabelle. Truncate leert die Tabelle, löscht also alle Datensätze. Diese Befehle nutzt man aber nicht in Skripte von außerhalb, sondern setzt sie direkt in phpMyAdmin bei der Verwaltung ein.
Themenseiten
Grundlagen
HTML-Grundlagen
CSS-Grundlagen
Javascript-Grundlagen
PHP-Grundlagen
MySQL-Grundlagen
SEO-Grundlagen
Infos, Tipps, Vermarktung
Webdesign-Lexikon
Online-Werbung
PHP-Codeschnipsel
Praxisartikel