Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten summieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten summieren

    Hallo zusammen,

    ich habe ein kleines Problem, welches ich mal so vereinfacht und verkürzt wie möglich zeigen will:

    Es soll Praktisch eine Art Onlineshop werden. Zu jeder Bestellung wird jedes dabei verkaufte Produkt samt Anzahl in eine Tabelle gespeichert.
    D.h. eine Bestellung hat eine ID und bestellt der Kunde 10 Artikel, dann kommen 10 Zeilen in der Tabelle hinzu.

    Nun bestellen z.B 5 kunden Produkt A. und einige andere Produkte.
    Ich möchte nun sehen, wie oft jedes Produkt bestellt wurde.

    Mein versuch schaut so aus (stark verkürzt, der übersichtlichkeit halber):

    PHP-Code:
    $sql_bestellungen mysql_query("SELECT ARTIKELID, MENGE, NAME FROM bestellungen WHERE BESTELLID IN ('"implode("','"$array_mit_BESTELLIDs) ."')"); 
    while(
    $object_bestellungen mysql_fetch_object($sql_bestellungen)){
    echo 
    $object_bestellungen->MENGE." ".$object_bestellungen->NAME."<br/>";

    Eine Ausgabe ist dann z.B. so:
    2 Prudukt xyz
    5 Produkt abc
    1 Irgendwas efg
    9 Produkt xyz
    2 Blubb blah
    2 Produkt xyz
    3 Produkt abc
    Soweit so unschön. Besser wäre natürlich, wenn das gruppiert/summiert wäre, also so:
    13 Prudukt xyz
    8 Produkt abc
    1 Irgendwas efg
    2 Blubb blah

    Ich habe dies mit
    PHP-Code:
    mysql_query("SELECT ARTIKELID, SUM(MENGE), .... 
    probiert, aber ohne Erfolg. Da bekomme ich insgesamt nur eine Zeile zurück in der auch keine Zahl mehr bei Menge steht.

    Mit einem
    PHP-Code:
    GROUP BY NAME 
    wird für jedes Produkt nur noch eine Zeile ausgegeben. Aber die Summe nicht zusammengezählt, sondern nur einer der Werte:
    2 Prudukt xyz
    5 Produkt abc
    1 Irgendwas efg
    2 Blubb blah
    Wenn ich SUM und GROUP BY kombiniere, dann bekomme ich für jedes Produkt eine Zeile, aber nie einen Wert:
    Prudukt xyz
    Produkt abc
    Irgendwas efg
    Blubb blah

    Nun bin ich mit meinem Latein am Ende.
    Vielleicht kann mir hier jemand sagen, was ich machen muss.

    Vielen Dank schon mal im Vorraus!


  • #2
    Dir fehlt Erfahrung mit PHP und SQL. Warum legst du dich also mit beiden gleichzeitig an? Teste den Query direkt mit der Datenbank (z.B. phpmyadmin) und wenn der Query das macht was er soll kannst du ihn ins Script einfügen. Da bekommst du dann nämlich auch mit das Query X in phpmyadmin funktioniert, aber im PHP Script "irgendwie" nicht mehr.

    PS: der Fehler liegt in der Ausgabe... SUM(MENGE) ist in PHP ebend auch SUM(MENGE) und nicht MENGE. Da der Bezeichner aber umständlich ist empfehlt es sich ein Alias dafür zu vergeben. SUM(MENGE) AS summe und in PHP ist die Spalte dann als summe verfügbar.

    Kommentar


    • #3
      jup, hab genau das währenddessen gemacht. hab es auch hinbekommen mit SUM(MENGE) as 'summemenge' und dann das abgefragt. Passt. Manchmal hilft es, das Problem verständlich zu erklären, damit es klick macht.

      Kommentar


      • #4
        Also zunächst bitte PDO oder mysqli statt mysql_ verwenden.

        und Dann verweise ich mal auf ein beliebtes tutorial:
        http://www.peterkropff.de/site/mysql/normalisierung.htm

        Einfach mal durcharbeiten, für deinen speziellen Fall sogar äußerst relevant .

        Kommentar

        Lädt...
        X