Aggregatfunktionen in PHP an MySQL?

Aggregatfunktionen in PHP an MySQL?

am 30.12.2004 01:02:47 von Walter Kerelitsch

Ein Anfänger meldet sich...

Also, simple SQL-Abfragen hab ich - denk ich - schon langsam im Griff.

Aber wie realisiere ich eine Aggregatfunktion (ich meine nicht count) unter
Apache/PHP/MySQL, ohne alle Sätze selbst duchzuzählen??

Ich brauche eine Summe von bestimmten Feldern bestimmter Sätze...

$sqlqry="select sum(FRA_punkte) from frage where FRA_TEST_FS = '$testid'";
// denk ich mir halt, dass das so gehen könnte....zumindest im normalen sql
halt
$qry= mysql_query($sqlqry,$conn); // und ab damit in die kiste ;.))
$numF=mysql_num_rows($qry); // ja, so krieg ich die anzahl der rows,
brauch ich nicht
$db_frage=mysql_fetch_assoc($qry); // und so als assoc-array die
einzelnen records.

aber wo steht die summe der fra_punkte zu einer bestimmten $testid?

vielen dank im voraus
lg walter

Re: Aggregatfunktionen in PHP an MySQL?

am 30.12.2004 04:13:34 von Niels Braczek

Walter Kerelitsch schrieb:

> Ein Anfänger meldet sich...

Willkommen! Hier erst mal das Begrüßungspaket:
Manual: http://www.php.net/manual/en/
FAQ: http://www.dclp-faq.de/
Tutorials: http://www.php-tutorials.de/
HTML: http://selfhtml.teamone.de/
MySQL:
Typo3:

> Also, simple SQL-Abfragen hab ich - denk ich - schon langsam im Griff.

Schön.

> $sqlqry="select sum(FRA_punkte) from frage where FRA_TEST_FS =
> '$testid'"; // denk ich mir halt, dass das so gehen
> könnte....zumindest im normalen sql halt

Der Einfachheit halber solltest du das Ding benennen.
$sqlqry = "SELECT SUM(FRA_punkte) AS summe
FROM frage
WHERE FRA_TEST_FS='$testid'";

> $qry= mysql_query($sqlqry,$conn); // und ab damit in die kiste

Hier fehlt prinzipiell eine Fehlerbehandlung.

> $db_frage=mysql_fetch_assoc($qry); // und so als assoc-array die
> einzelnen records.

Nein. So bekommst du *einen* (den ersten) Datensatz. Siehe Manual.
Die Summe steht dann in $db_frage['summe'].
BTW: $db_frage ist ein ungünstiger Name für einen Datansatz. $row bspw.
ist wesentlich sprechender.

> aber wo steht die summe der fra_punkte zu einer bestimmten $testid?

var_dump() ist dein Freund.

MfG
Niels

--
Je korrupter ein Staat, desto zahlreicher seine Gesetze. [Tacitus}

Re: Aggregatfunktionen in PHP an MySQL?

am 30.12.2004 08:45:20 von Fabian Schladitz

"Walter Kerelitsch" schrieb
> Aber wie realisiere ich eine Aggregatfunktion (ich meine nicht count)
unter
> Apache/PHP/MySQL, ohne alle Sätze selbst duchzuzählen??

Du suchst GROUP BY?
http://dev.mysql.com/doc/mysql/en/GROUP-BY-Functions.html

> Ich brauche eine Summe von bestimmten Feldern bestimmter Sätze...

Du brauchst du Summe über mehrere Felder EINES Datensatzes?
Oder suchst du die Summe über ein Feld MEHRERE Datensätze?
Oder suchst du beides bunt gemischt?

> $sqlqry="select sum(FRA_punkte) from frage where FRA_TEST_FS = '$testid'";

Wenn du jetzt noch deine Tabellenstruktur offen legst (z.B. das
entsprechende CREATE TABLE Statement offenbahrst), kann man dir sicherlich
noch besser helfen.

> aber wo steht die summe der fra_punkte zu einer bestimmten $testid?
Wie schon von Niels beschrieben: var_dump() nutzen und sehen, was du in
deiner Variable drin hast.

Mehr Infos und du bekommst bessere Antworten.
Liess bitte auch die Seiten, die Niels verlinkt hat.

--
HTH,
Fabian

Re: Aggregatfunktionen in PHP an MySQL?

am 30.12.2004 10:36:04 von Marcel Hellkamp

Niels Braczek wrote:
> Willkommen! Hier erst mal das Begrüßungspaket:
> FAQ: http://www.dclp-faq.de/

Die sind noch vom letzten Quartal übrig gebliebn oder? Du kannst doch
den veralten Schund keinem Neuling andrehen ;)

Will sagen: Update mal dein Begrüßungspacket auf http://www.php-faq.de

Re: Aggregatfunktionen in PHP an MySQL?

am 30.12.2004 12:02:32 von do.not.REMOVETHAT

Walter Kerelitsch schrieb:

> aber wo steht die summe der fra_punkte zu einer bestimmten $testid?

Im ersten Element von $db_frage. Dessen Namen/Key hättest Du explizit
festlegen können mit "select SUM(FRA_punkte) AS krassername from....".
Dann stände die Summe in $db_frage['krassername'].

Grüße, Matthias

Re: Aggregatfunktionen in PHP an MySQL?

am 30.12.2004 15:31:11 von Niels Braczek

Marcel Hellkamp schrieb:
> Niels Braczek wrote:

>> Willkommen! Hier erst mal das Begrüßungspaket:
>> FAQ: http://www.dclp-faq.de/
>
> Die sind noch vom letzten Quartal übrig gebliebn oder? Du kannst doch
> den veralten Schund keinem Neuling andrehen ;)
>
> Will sagen: Update mal dein Begrüßungspacket auf http://www.php-faq.de

Das sollte ich wirklich mal tun. Das ist nunmal das Problem bei
Textbausteinen ;-)

MfG
Niels

--
Perfektion ist nicht erreicht, wenn man nichts mehr hinzufügen kann,
sondern wenn man nichts mehr wegnehmen kann.
[Antoine de Saint-Exupéry]

Re: Aggregatfunktionen in PHP an MySQL?

am 31.12.2004 02:48:57 von Walter Kerelitsch

danke!
lg walter

Re: Aggregatfunktionen in PHP an MySQL?

am 31.12.2004 02:51:38 von Walter Kerelitsch

"Fabian Schladitz" schrieb im >
> Du brauchst du Summe über mehrere Felder EINES Datensatzes?
> Oder suchst du die Summe über ein Feld MEHRERE Datensätze?
> Oder suchst du beides bunt gemischt?
>
dachte eigentlich, das sql-statement ist eindeutig (also für mich und meine
db-kenntnisse jedenfalls).
danke trotzdem

lg walter

Re: Aggregatfunktionen in PHP an MySQL?

am 31.12.2004 02:52:33 von Walter Kerelitsch

yep, vielen dank!
lg walter