Problem mit Daten gruppieren

Problem mit Daten gruppieren

am 02.07.2006 22:55:00 von Jolantha Belik

Hi,

in einer Spalte einer Tabelle ist das Geschlecht als F bzw. M gespeichert
(derzeit 22 F und 3 M in der DB). Ich möchte F und M jeweils
zusammenzählen und in einer Tabellelle die jeweilige Anzahl samt
Prozentanteil ausgeben.

Daten werden geholt mit:

$query_oGeschlecht = "SELECT 1X5X101, COUNT(*) AS anzahl FROM survey_1
GROUP BY survey_1.`1X5X101`";
$oGeschlecht = mysql_query($query_oGeschlecht, $cs) or die(mysql_error());
$row_oGeschlecht = mysql_fetch_assoc($oGeschlecht);
$totalRows_oGeschlecht = mysql_num_rows($oGeschlecht);
$anz = mysql_fetch_array($oGeschlecht);
$anzahl = $anz['anzahl'];
$prozent = sprintf('%1.1f', $anzahl*100/$totalRows_opfer); //
$totalRows_opfer ist defineirt!

und so in die HTML-Tabelle geschrieben:







?>


Das Ergebnis schaut derzeit folgendermaßen aus:

Geschlecht / Anzahl / Prozent
F / 3 / 12.0

sollte aber so aussehen:

Geschlecht / Anzahl / Prozent
F / 22 / 78.0
M / 3 /12.0

Ich komme auf den Fehler einfach nicht drauf. Was muß ich ändern bzw. im
Code ergänzen, damit die Ausgabe korrekt funktioniert?

Grüße,
Jola

Re: Problem mit Daten gruppieren

am 03.07.2006 00:53:06 von Gerhard Pfeiffer

Hallo,

* Jolantha Belik :
> in einer Spalte einer Tabelle ist das Geschlecht als F bzw. M gespeichert
> (derzeit 22 F und 3 M in der DB). Ich möchte F und M jeweils
> zusammenzählen und in einer Tabellelle die jeweilige Anzahl samt
> Prozentanteil ausgeben.
>
> Daten werden geholt mit:
>
> $query_oGeschlecht = "SELECT 1X5X101, COUNT(*) AS anzahl FROM survey_1
> GROUP BY survey_1.`1X5X101`";
> $oGeschlecht = mysql_query($query_oGeschlecht, $cs) or die(mysql_error());
> $row_oGeschlecht = mysql_fetch_assoc($oGeschlecht);
> $totalRows_oGeschlecht = mysql_num_rows($oGeschlecht);
> $anz = mysql_fetch_array($oGeschlecht);
> $anzahl = $anz['anzahl'];

Diese Anzahl solltest du jedes Mal neu holen.
mit dem mysql_fetch_array holst du dir die zweite Zeile, so dass $anzahl der
Wert der anderen Gruppe (M) ist.
Die Berechnung der Anzahl und der Prozent musst du ja auch für jede Zeile neu
machen.

> $prozent = sprintf('%1.1f', $anzahl*100/$totalRows_opfer); //
> $totalRows_opfer ist defineirt!
>
> und so in die HTML-Tabelle geschrieben:
>
>
>
>
>
>
>
> > ?>

HTH.

Ciao,
Gerhard

Re: Problem mit Daten gruppieren

am 03.07.2006 13:42:01 von Johannes Vogel

Hi Jolantha

Jolantha Belik wrote:
> $query_oGeschlecht = "SELECT 1X5X101, COUNT(*) AS anzahl FROM survey_1
> GROUP BY survey_1.`1X5X101`";

Am Rande: Iik, wer will denn mit solchen Attributbezeichnungen
arbeiten?! Dein DB-Design ist kaputt.

SCNR, Johannes

Re: Problem mit Daten gruppieren

am 03.07.2006 17:27:34 von Jolantha Belik

"Johannes Vogel" tippselte ...

Hi Johannes,

> wer will denn mit solchen Attributbezeichnungen
> arbeiten?!

Wenn Du mit PHPSurveyor erstellte Umfragen weiterverarbeitest, wird Dir
nix anderes übrig bleiben.

> Dein DB-Design ist kaputt.

Weshalb bitte?

Grüße,
Jolantha

Re: Problem mit Daten gruppieren

am 03.07.2006 17:30:31 von Frank Schenk

Jolantha Belik wrote:
> "Johannes Vogel" tippselte ...
>
> Hi Johannes,
>
>
>>wer will denn mit solchen Attributbezeichnungen
>>arbeiten?!
>
>
> Wenn Du mit PHPSurveyor erstellte Umfragen weiterverarbeitest, wird Dir
--------------^^^^^^^^^^^

> nix anderes übrig bleiben.
>
>
>>Dein DB-Design ist kaputt.

Siehe markierte Zeile


Frank

Re: Problem mit Daten gruppieren

am 03.07.2006 18:18:44 von Jolantha Belik

"Frank Schenk" tippselte ...

> Siehe markierte Zeile

Ahja, schon klar, "alles was man nicht selber macht, ist Mist".

SCNR

Jola

P.S:: die seltsamen Namen setzen sich zusammen aus
umfrage_idXgruppen_idXfragen-id, ist also sehr wohl handlebar. ;-)

Re: Problem mit Daten gruppieren

am 03.07.2006 18:23:03 von Jolantha Belik

"Gerhard Pfeiffer" tippselte ...

Hallo Gerhard,

> Diese Anzahl solltest du jedes Mal neu holen.
> mit dem mysql_fetch_array holst du dir die zweite
> Zeile, so dass $anzahl der Wert der anderen
> Gruppe (M) ist.
> Die Berechnung der Anzahl und der Prozent musst
> du ja auch für jede Zeile neu machen.

Dein Hinweis hat mich auf den richtigen Weg gebracht - vielen Dank!

Grüße,
Jolantha

Re: Problem mit Daten gruppieren

am 03.07.2006 21:36:08 von Kai Ruhnau

Jolantha Belik wrote:
> "Frank Schenk" tippselte ...
>
>> Siehe markierte Zeile
>
> Ahja, schon klar, "alles was man nicht selber macht, ist Mist".
>
> SCNR
>
> Jola
>
> P.S:: die seltsamen Namen setzen sich zusammen aus
> umfrage_idXgruppen_idXfragen-id,

Die kodieren Teile der Daten in den Tabellennamen?

> ist also sehr wohl handlebar. ;-)

Nein, nein und nochmals nein! Das ist Lichtjahre entfernt von einer
brauchbaren Datenbankstruktur.

*GRUSEL*

Grüße
Kai

Fup2p, ich hab gerade keine Lust in eine Datenbankgruppe zu Fuppen.


--
This signature is left as an exercise for the reader.