» Startseite
» Newsübersicht
» Kontakt
» Impressum

» Forum
» Gästebuch

» Einführung PHP
» Einführung MySQL
   » Anfang
   » Tabellen füllen
   » Verbin. aufbauen
   » Daten ausgeben
   » Weitere Abfragen
   » Daten hinzufügen
   » Daten ändern
   » Daten löschen
   » Anzahl d. Zeilen
   » Verbin. beenden
   » MySQL-Fehler


PHP-Einfach.de

Counterdienst:
Digicount.de
Unser werbefreier Counter- und Statistikdienst

Anzahl der Zeilen herraus finden

Manchmal stellt sich die Frage, wieviele Zeilen/Datensätze wurden denn gefunden? 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
$abfrage = "SELECT id FROM links";
$ergebnis = mysql_query($abfrage);
$menge = mysql_num_rows($ergebnis);

echo $menge;
?>
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($ergebnis) 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. 1 Millionen Einträge hat, dann wären diese 1 Mio. Datensätze in $ergebnis 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
$abfrage = "SELECT COUNT(id) FROM links";
$ergebnis = mysql_query($abfrage);
$menge = mysql_fetch_row($ergebnis);
$menge = $menge[0];

echo $menge;
?>
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.
Außerdem werden nur ca. 4 Byte Platz benötigt.

Diese Variante ist bei einer Tabelle mit 90 000 Einträgen ca. um den Faktor 2000 (200000%) schneller.
Bei kleineren Tabellen ist der Unterschied nicht so gravierend.

So zum Schluss lernen wir noch, wie wir eine Verbindung beenden

Autor Andavos

News

Forum

Newsletter


© PHP-Einfach.de 2003 - 2007