Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Gesamtzahl der Frauen aus der Spalte "Geschlecht" ermitteln? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Gesamtzahl der Frauen aus der Spalte "Geschlecht" ermitteln?


 
bigtail
29-01-2010, 19:35 
 
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

 
combie
29-01-2010, 19:42 
 
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

 
combie
29-01-2010, 19:56 
 
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:

 
bigtail
02-02-2010, 12:22 
 
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

 
combie
02-02-2010, 12:29 
 
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

 
bigtail
02-02-2010, 17:17 
 
: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)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:03 Uhr.