Veröffentlicht 29. Januar 200322 j 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.
29. Januar 200322 j 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
29. Januar 200322 j 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
29. Januar 200322 j 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"];
30. Januar 200322 j 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.
31. Januar 200322 j 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.
31. Januar 200322 j 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:
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.