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.
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
DarkLuna Geschrieben 29. Januar 2003 Autor Geschrieben 29. Januar 2003 danke, werd ich sofort ausprobieren
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
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"];
DarkLuna Geschrieben 30. Januar 2003 Autor Geschrieben 30. Januar 2003 danke, hat mit count jetzt geklappt.
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.
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.
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:
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden