Anzahl unterschiedlicher id's

GN911

Erfahrenes Mitglied
Hallo,

wie kann ich in einer mysql spalte die Anzahl unterschiedlicher id's ausgeben lassen?
Also zählen wieviele einsen, zweien usw. vorhanden sind.

So bekkome ich ja nur die Anzahl der gesamten id's.
PHP:
   $anzahl = @mysql_query ("SELECT COUNT(id) as anzahl FROM tabelle");
   $count = mysql_result($anzahl, 0);
   echo $count;

GN911
 
PHP:
$sql = "SELECT DISTINCT(id) FROM table";
$query = mysql_query( $sql );
$num = mysql_num_rows( $num );

echo $num;
Sicherlich kann man sich mysql_num_rows() sparen und stattdessen mit der COUNT-Funktion in MySQL arbeiten, aber damit habe ich bisher keine Erfahrung. Spontan würde ich folgendes sagen:
Code:
SELECT COUNT( SELECT DISTINCT(id) FROM table ) AS anzahl FROM table
 
Hi Paula,

das meinte ich nicht.
Ich will die die Anzahl id's die id = 1; id = 2 usw. sind. Es gibt in der Spalte mehrere id's = 1 nehmlich 5 und 8 mit der id = 2.

Das möchte ich ausgeben.

GN911
 
GN911 hat gesagt.:
Hi Paula,

das meinte ich nicht.
Ich will die die Anzahl id's die id = 1; id = 2 usw. sind. Es gibt in der Spalte mehrere id's = 1 nehmlich 5 und 8 mit der id = 2.

Das möchte ich ausgeben.

GN911

Hm naja dann bleibt vielleicht noch die Möglichkeit für jede id (WHERE id =) eine Abfrage zu machen.
Natürlich guckst du, welche id die höchste ist, damit du weißt, wie viele Abfragen du machen musst
 
Hi GN911

so könntest du es machen.

PHP:
 $sql = "SELECT `id` FROM `table` WHERE `id`='Deine Zahl' ";
 $query = mysql_query( $sql) OR DIE (mysql_error());
 $num = mysql_fetch_array( $query);
 
 echo $num["id"];
 
GN911 hat gesagt.:
Hi,

wie mach ich das aber?


GN911
Ersteinmal über ein select die Anzahl der id's rausfinden (count) und dann eine Schleife:

PHP:
for ($i = 1, $count = 0; $i <= $anzahl; $i++) {
  $select = "SELECT .... WHERE id = '$i' ";
  $result = mysql_query($select) or die(mysql_error());
  $count += mysql_num_rows($result);
}
echo $count;
Ich glaub, das sollte funktionieren. Wenn nicht, dann eben nicht ;)
 
Zuletzt bearbeitet:
Hi,

hab das so gemacht, aber er gibt eine 0 aus.

PHP:
   for ($i = 1, $count = 0; $i <= $anzahl; $i++)
   {
 	  $select = "SELECT COUNT(id) as anzahl FROM tabelle WHERE id = '$i' ";
 	  $result = mysql_query($select) or die(mysql_error());
 	  $count += mysql_num_rows($result);
   }
   echo $count;

GN911
 
Zurück