Hi,
ich möchte aus der Spalte "Geschlecht" die Gesamtzahl der Männer und die Gesamtzahl der Frauen ermitteln.
Das Ergebnis sollte etwa so aussehen:
Insgesammt: 32
Frauen: 12
Männer: 20
Kann mir bitte jemand einen Tipp geben wie die Abfrage dafür aussehen sollte?
Danke
SELECT Geschlecht, COUNT(*) AS Anzahl
FROM Tabelle
GROUP BY Geschlecht
Und das + wirst du in PHP erledigen können
AmicaNoctis
29-01-2010, 19:42
select count(*) as num from table group by gender;
Den Rest kannst du dann mit PHP aufdröseln.
Edit: :) @combie
select count(*) as num from table group by gender;
Den Rest kannst du dann mit PHP aufdröseln.
Edit: :) @combie
Danke für die Blumen...
Und wenn du ähnliches vorschlägst gibts wohl keine bessere/einfachere Alternative....
:beer:
Danke für eure Antworten.
Ich habe das Ganze erstmal so gelöst (bestimmt nicht die beste Lösung):
$query = "SELECT geschlecht, COUNT(*) AS total
FROM jos_ckforms_1
GROUP BY geschlecht ORDER by total
";
$result = @mysql_query($query, $connect) OR die( mysql_error() );
while ( $row = mysql_fetch_object($result) )
{
echo "$row->geschlecht: ";
echo "$row->total<br>";
}
Das klappt auch.
Die Spalte "geschlecht" ist aber nur eine Spalte von insgesamt 10 Spalten, die alle so behandelt werden müssen.
Deswegen möchte ich statt Spaltennamen eine Variable einsetzten. (Also der user wählt welche Spalte er an die Abfrage schicken möchte ).
Also um das zu lösen habe ich den Spaltenname aus dem Beispiel nämlich "geschlecht" durch die Variable $spalte ersetzt und die Abfrage wie folgt umgeschrieben:
$query = "SELECT $spalte, COUNT(*) AS total
FROM jos_ckforms_1
GROUP BY $spalte ORDER by total
";
$result = @mysql_query($query, $connect) OR die( mysql_error() );
while ( $row = mysql_fetch_object($result) )
{
echo "$row->$spalte: ";
echo "$row->total<br>";
}
Es klappt aber nicht. Die Query erzeugt folgende Fehlermeldung:
Catchable fatal error: Object of class stdClass could not be converted to string in / .....report.php on line 69
und das ist die Zeile 69:
echo "$row->$spalte: ";
Was mache ich falsch?
Danke
Herrje....
$query = "SELECT $spalte AS Spalte, COUNT(*) AS total
FROM jos_ckforms_1
GROUP BY $spalte ORDER by total
";
$result = @mysql_query($query, $connect) OR die( mysql_error() );
while ( $row = mysql_fetch_object($result) )
{
echo $row->Spalte .": ";
echo $row->total ."<br>";
}
AmicaNoctis
02-02-2010, 12:32
Hallo,
das ist einer der vielen Gründe, warum man keine Variablen in Strings benutzen soll. Verkette die Variablen vernünftig und es wird funktionieren. ;)
Beispiel:
echo("Ausgabe: " . $myObj->$dynProperty . "\n";)
Edit: Wieder zu langsam... ;)
Dann erwähne ich wenigstens noch, dass du damit die Leuchtreklame "Ich will gehackt werden" raushängst. Informiere dich über SQL-Injections.
Gruß,
Amica
:danke:
Besten Dank für eure Antworten. Damit klappt es wunderbar.
Dass ich nach mehrere Stunden rumprobieren das nicht selbst hingekriegt habe, ist mir wohl ein Rätsel. :goth:
Es zeigt aber wie wenig ich von Programmieren verstehe:{
Dann erwähne ich wenigstens noch, dass du damit die Leuchtreklame "Ich will gehackt werden" raushängst. Informiere dich über SQL-Injections.
Nein, bitte ich will nicht gehackt werden. Aber ich habe keine Ahnung, wo ich die Leuchtreklame ausgehängt habe!
Bitte was sollte ich da beachten? :dontknow:
AmicaNoctis
02-02-2010, 17:25
Nein, bitte ich will nicht gehackt werden. Aber ich habe keine Ahnung, wo ich die Leuchtreklame ausgehängt habe!
Bitte was sollte ich da beachten? :dontknow:
SQL-Injection (http://lmgtfy.com/?q=SQL%20Injection)