00 Stimmen

PHP/MySQL: Wie kann ich $result['COUNT(id)'] ausgeben?

Frage von Gast | 19.03.2014 um 11:09

Ich möchte gerne die Anzahl der Datensätze, die zu verschiedenen Gruppen gehören, ausgeben.

Dafür benutze ich eine MySQL Abfrage mit "COUNT(id)" kombiniert mit einem "GROUP BY":

$query = "SELECT COUNT(id) FROM tab GROUP BY col";

mysql_select_db('db');

$result = mysql_query($query) or die(mysql_error());

while($result = mysql_fetch_assoc($result)) {
  echo $result['COUNT(id)'];
  echo "/n";
}

Leider endet die Ausgabe in einer Fehlermeldung. Wie kann ich trotzdem die Ausgabewerte von "COUNT(id)" speichern?

AntwortenPositivNegativDatumStimmen
11 Stimme

Probiere stattdessen folgendes:

$query = "SELECT COUNT(id) as c FROM tab GROUP BY col";
 
mysql_select_db('db');
 
$result = mysql_query($query) or die(mysql_error());
 
while($row = mysql_fetch_assoc($result)) {
  echo $row["c"];
  echo "/n";
}

Du kannst $result nicht auf einen anderen Wert setzen während du noch Werte von $result ausließt. Benutze einfach eine andere Variable wie zum Beispiel $row statt $result.

Außerdem ist es besser "COUNT(id) as c" zu schreiben. Dann hast du deine Werte in "c" gespeichert.
19.03.2014 um 13:10

AntwortenPositiv Negativ
11 Stimme

Ich finde es ist noch einfacher, wenn du den folgenden Ansatz nimmst:

$query = "SELECT COUNT(id) FROM tab GROUP BY col";
 
mysql_select_db('db');
 
$result = mysql_query($query) or die(mysql_error());
 
while(list($c) = mysql_fetch_row($result)) {
  echo $c;
  echo "/n";
}

Wenn du list($c) und mysql_fetch_row nimmst hast du nicht das Problem mit dem associated array.

Die Funktion mysql_fetch_row holt dir Datenreihe für Datenreihe in einen Array und mit list() kannst du diesen Array dann in Variablen speichern und direkt verwenden. Bei mehreren Feldern wäre es entsprechend list($x, $y, $z) für drei Felder zum Beispiel.
19.03.2014 um 13:56

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

PHP: Datei Download Skript

Tutorial | 0 Kommentare

PHP: Upload großer Dateien

Tutorial | 0 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.