Wie folgende Anfrage am besten machen ?

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

  • Wie folgende Anfrage am besten machen ?

    Hi,

    Ich habe eine Tabellenstrauktur in meiner datenbank die wie folgt aussieht:

    Menge_1 Artnr_1 Menge_2 Artnr_2 Menge_3 Artnr_3 .....Menge_15 Artnr_15

    Ich will jetzt eine beliebige Artikelnummer eingeben und dann sollen aus allen zeilen die mengen addiert werden, d.h ich such z.B Artnr = 44 - dann sollen alle zeilen durchgegangen werden und alle mengen addiert werden bei deren artikelnummer die eingegebene artikelnummer steht z.B wenn bei artnr_13 die besagte artikelnummer steht soll der wert der menge_13 genommen werden und zu den anderen werten addiert werden - und das in allen zeilen und daraus soll sich dann der gesucht gesamtwert ergeben. Wie ließe sich das umsetzten ?

  • #2
    ehm irgendwie versteh ich es nicht ganz. hat ein artikel mit der selben artikelnr mehrere mengen ?

    artikel 44:
    -> menge1: 10
    -> menge2: 20

    wenn dem so ist, musst du doch nix anderes machen als in deinem schleifendurchlauf die felder zusammenzählen

    $menge = $menge1 + $menge2

    Kommentar


    • #3
      der artikel kann in der zeile maximal nur einmal stehen - man weiß aber nicht an welcher stelle...
      menge_10 gehört zu artnr_10 wenn artnr_10 die gesuchte artikelnummer ist muss der wert des feldes Menge_10 genommen werden...
      Die Mengen aller Zeilen ergeben dann die gesamtmenge die ich suche...

      Kommentar


      • #4
        Re: Wie folgende Anfrage am besten machen ?

        Original geschrieben von tschekowski

        Menge_1 Artnr_1 Menge_2 Artnr_2 Menge_3 Artnr_3 .....Menge_15 Artnr_15
        soll das ein Datensatz aus deiner Tabelle sein? oder wie sieht denn die Tabellenstruktur aus?

        Kommentar


        • #5
          Menge_X bzw. Artnr_X stellt jeweil eine Spalte dar

          Kommentar


          • #6
            dann sollst du aber wirklich Gedanken über dein DB-Design machen, weil so ein Unfug mach keiner

            Kommentar


            • #7
              doch die struktur hat auch eine reihe von vorteilen
              die lässt sich jetzt aber nicht mehr ändern, da die struktur schon in anderen dateien eingebunden ist.
              Gibt es keine Möglichkeit die Daten mit dieser Struktur auszulesen ?

              Kommentar


              • #8
                so hab jetzt mal eine Abfrage dafür gemacht:

                PHP-Code:
                $n=1;
                while (
                n<=15) {

                $n1=$n+1;

                $x=mysql_query("SELECT SUM(Menge_.$n1) FROM Bestellungsdaten WHERE Artnr_.$n1 like '$artnr'");
                $x1=mysql_fetch_array($x);
                $m.$n1=$x1[Menge_.$n1];

                $n1=$n;}



                $m1+$m2+$m3+$m4+$m5+$m6+$m7+$m8+$m9+$m10+$m11+$m12+$m13+$m14+$m15=$gesamtanzahl
                Das Problem ist jetzt nur , dass nur der HTML-Kopf ausgegeben wird und der Rest nicht - ne Fehlermeldung gibts aber nicht.
                Wo liegt der Fehler in meiner Abfrage ?

                Kommentar


                • #9
                  Original geschrieben von tschekowski
                  doch die struktur hat auch eine reihe von vorteilen
                  OffTopic:
                  ja klar, dass auch mal ein *** einen Job als DB-Designer kriegen

                  Kommentar


                  • #10
                    Original geschrieben von tschekowski
                    so hab jetzt mal eine Abfrage dafür gemacht:

                    PHP-Code:
                    $n=1;
                    while (
                    n<=15) {

                    $n1=$n+1;

                    $x=mysql_query("SELECT SUM(Menge_.$n1) FROM Bestellungsdaten WHERE Artnr_.$n1 like '$artnr'");
                    $x1=mysql_fetch_array($x);
                    $m.$n1=$x1[Menge_.$n1];

                    $n1=$n;}



                    $m1+$m2+$m3+$m4+$m5+$m6+$m7+$m8+$m9+$m10+$m11+$m12+$m13+$m14+$m15=$gesamtanzahl
                    Das Problem ist jetzt nur , dass nur der HTML-Kopf ausgegeben wird und der Rest nicht - ne Fehlermeldung gibts aber nicht.
                    Wo liegt der Fehler in meiner Abfrage ?
                    ich denke du sollst dringend PHP- und SQL-Grundlagen nachholen
                    - wenn du while($n<15) als Abbruchbedingung definierst und darin $n nicht veränderst, kommst du nicht wirklich aus der schleife raus. Außerdem mit (n<15) schon garnicht.
                    - wenn du select sum(...) machst und ohne Alias setzst, kannst du nicht mehr über die Spaltenname den Wert holen
                    - wenn du $m.$n1 machst, bekommst du bestimmt nicht $m1, ... $m10, ... als Variable raus
                    - ... und ... und ... und ...

                    Meine Empfehlungen:

                    www.schattenbaum.net/php
                    http://www.php.net/manual/en/
                    http://dev.mysql.com/doc/mysql/en/

                    Kommentar

                    Lädt...
                    X