Manchmal stellt sich die Frage, wieviele Datensätze vorhanden sind. Denn dies wäre nützlich bei Suchanfragen oder auch bei einer Blätterfunktion.
Zum Glück geht dies ganz einfach. Dazu lernen wir jetzt einen neuen MySQL Befehl kennen, und zwar mysql_num_rows().
Der Script sieht so aus:
<?php $query ="SELECT id FROM phonebook"; $result = mysql_query($query); $count= mysql_num_rows($result); echo $count; ?>
Bei der Abfrage können wir wieder die gleichen Attribute wie bei Weitere Abfragen benutzen.
Auch können wir mit der Abfrage die Ergebnisse wieder ausgeben, dazu würden wieder das $row = mysql_fetch_object($result) benutzen. Falls wir die Werte nicht ausgeben möchten, sondern nur die gefundene Zeilenanzahl wissen wollen, sollten wir nur 1 Spalte abfragen, z.B. id, denn dies spart Arbeitskapazität.
Allerdings ist diese Variante bei größeren Tabellen extrem langsam und speicherintensiv.
Denn wir fragen ja die komplette Tabelle ab, und in $ergebnis wird dann das Ergebnis gespeichert.
Wenn die Tabelle jetzt z.B. eine Millionen Einträge hat, dann wären diese 1 Mio. Datensätze in $result gespeichert. Dies würde desweiteren ca. 4 MB Speicherplatz benötigen, und für Scripts ist dieser sehr begrentzt.
Darum gibt es in MySQL eine weitere Methode, wie man schneller und sparsamer die Anzahl der Zeilen ermittelt. Allerdings können wir danach nicht das $ergebnis per Schleife ausgeben, dafür benötigen wir eine erneute Anfrage an die Datenbank:
<?php $query ="SELECT COUNT(id) FROM phonebook"; $result = mysql_query($query); $count= mysql_fetch_row($result); $count= $menge[0]; echo $count; ?>
Hier benutzen wir die SQL-Funktion: COUNT(id). Der Vorteil an der Funktion ist, dass die Anzahl der Einträge direkt aus der Tabellen-Information ausgelesen wird.