DarkLuna Geschrieben 29. Januar 2003 Geschrieben 29. Januar 2003 Ich habe ein Array $row. Dieses Array wurde mit einer SELECT Anweisung aus einer DB generiert. Nun möchte ich wissen wie viele Datensätze da jetzt drin sind. Ich habe das bereits mit dem Count Befehl in der sql anweisung probiert, aber das hat nicht geklappt. bzw er hat gar nichts ausgegeben. Aus diesem grund poste ich nicht bei DB´s, sondern hier. Es muss doch noch eine andere Möglichkeit geben, ein php Befehl vielleicht. Um noch mal mein Problem zu verdeutlichen: Es gibt zB: $row[0][0] Erster Datensatz $row[0][1] $row[1][0] Zweiter Datensatz $row[1][1] $row[2][0] Dritter Datensatz $row[2][1] Ich möchte nämlich später eine Schleife machen, wo die Anzahl der Durchläufe gleich der Anzahl der Datensätze sein sollen. Ich hoffe, es gibt ne ganz einfache Lösung auf die ich nur nicht gekommen bin. Zitieren
kathi008 Geschrieben 29. Januar 2003 Geschrieben 29. Januar 2003 Hi, Benutzt du MySQL- Datenbank? $result = mysql_query("SELECT * FROM $tabelle"); Anzahl der Datensätze: mysql_num_rows($result); Die Schleife: while($row = mysql_fetch_array($result)) { ... } Steht alles in PHP Manual Zitieren
DarkLuna Geschrieben 29. Januar 2003 Autor Geschrieben 29. Januar 2003 danke, werd ich sofort ausprobieren Zitieren
korea1 Geschrieben 29. Januar 2003 Geschrieben 29. Januar 2003 in php würde das ganze so gehen: $a[0] = 1; $a[1] = 3; $a[2] = 5; $result = count ($a); //$result == 3 ich hoffe das hilft dir weiter mfg korea1 Zitieren
Chaosmaker Geschrieben 29. Januar 2003 Geschrieben 29. Januar 2003 Originally posted by kathi008 Hi, Benutzt du MySQL- Datenbank? $result = mysql_query("SELECT * FROM $tabelle"); Anzahl der Datensätze: mysql_num_rows($result); Bei größeren Datenbanken würde ich das aber nicht wirklich empfehlen, es sei denn der Server langweilt sich. In dem Fall eher: $result = mysql_query("SELECT COUNT(*) AS anzahl FROM tabelle"); $rows = mysql_fetch_array($result); Anzahl der Datensätze: $rows["anzahl"]; Zitieren
DarkLuna Geschrieben 30. Januar 2003 Autor Geschrieben 30. Januar 2003 danke, hat mit count jetzt geklappt. Zitieren
jomama Geschrieben 30. Januar 2003 Geschrieben 30. Januar 2003 Originally posted by Chaosmaker Bei größeren Datenbanken würde ich das aber nicht wirklich empfehlen, es sei denn der Server langweilt sich. In dem Fall eher: $result = mysql_query("SELECT COUNT(*) AS anzahl FROM tabelle"); $rows = mysql_fetch_array($result); Anzahl der Datensätze: $rows["anzahl"]; num_rows funzt aber auch bei unserer 10000 Zeilen-Datenbank in Sekunden. Ausserdem ist das was du da schreibst nichts anderes als der schon erwähnte count. Zitieren
Chaosmaker Geschrieben 31. Januar 2003 Geschrieben 31. Januar 2003 Originally posted by jomama num_rows funzt aber auch bei unserer 10000 Zeilen-Datenbank in Sekunden. Ausserdem ist das was du da schreibst nichts anderes als der schon erwähnte count. Ohoh, das würd ich aber lieber keinem Serveradmin eines etwas ausgelasteteren Servers erzählen. Mit SELECT * holst Du schließlich die 10000 Datensätze komplett aus der Datenbank, wohingegen COUNT(*) nur kurz durchzählt, ohne die Daten zu holen. Und das ist sehr wohl ein großer Unterschied. Zitieren
jomama Geschrieben 31. Januar 2003 Geschrieben 31. Januar 2003 Sie hat doch schon die SELECT-Anweisung ausgeführt. Warum sollte sie nochmal eine ausführen? Du muss dich schon auf das Thema beziehen.:mod: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.