mysql_fetch_object-Frage

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

  • mysql_fetch_object-Frage

    Hi,

    kurze Frage:

    ich hol mir die daten aus der DB.

    PHP-Code:
    $query = @mysql_query("SELECT * FROM lieferliste") or mysql_error(); 
    Nun habe ich folgende Schleife:

    PHP-Code:
    while($line = @mysql_fetch_object($query)) 
        {
            echo 
    '<tr>';
            echo 
    '<td width=15% bgcolor="#e7e7e7" align="center">'.$line->Artikel.'</td>';
            echo 
    '<td width=15% bgcolor="#e7e7e7" align="center">'.$line->anzahl.'</td>';
            echo 
    '</tr>';
        } 

    Nun kurzer Hintergrund. Sobald eine Lieferung reinkommt wird die in die Lieferliste eingetragen. Nun möchte ich mit dieser Ausgabe alles sehen was in der Lieferliste drin steht. Das geht auch. Nur ich möchte wenn der Artikel bereits in der Ausgabe besteht das falls er nochmal auftritt nur die Anzahl erhöht wird.

    Hoffe ihr versteht was ich machen will:

    z.b.

    Artikel Anzahl
    A 5
    B 5
    A 2

    Im Moment wird es so ausgegeben
    Artikel Anzahl
    A 5
    B 5
    A 2

    möchte es aber so haben:

    Artikel Anzahl
    A 7
    B 5

    Danke
    Toast

  • #2
    wie wäre es

    a) mit einem select ala:
    PHP-Code:
    $sql "select *, sum(Anzahl) as menge from lieferliste GROUP BY Artikel"// ungetestet 
    b) einer prüfung bei der eingabe, ob der artikel schon in der tab ist
    wenn ja, dann um anzahl erhöhen, wenn nein, dann einstellen

    wäre mE aber sicherer mit artikelnummern zu arbeiten.


    BTW: gehört wohl eher ins mysql-forum
    Kissolino.com

    Kommentar


    • #3
      BTW: gehört wohl eher ins mysql-forum
      so ist es. dann lassen wir den thread mal wandern...

      *VERSCHIEB*
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        @Toast

        ausserdem solltest du die @'s weglassen. die bringen gar nichts, wenn du sauber codest.

        und wenn du unsauber codest, siehst du wenigstens ohne den @'s die meldungen.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Es sei denn er will benutzdefinierte Fehlermeldungen anzeigen anstatt die ellenlange Layout zerstörende MySQL-Fehlermeldungen.

          Man betrachte mal bei ein paar Seiten die Darstellung wenn die Datenbank abgeschmiert ist

          Aber zur Fehleranalyse unbedingt einschalten sonst sieht man den Wald vor den Bäumen nicht! ->
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar


          • #6
            Man betrachte mal bei ein paar Seiten die Darstellung wenn die Datenbank abgeschmiert ist
            das einzige @ akzeptiere ich beim connect und selecten der DB.

            da habe ich es persönlich auch drin. und dann ein die().

            aber ansonsten bringt es gar nichts...
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              @Wurzel

              also es klappt soweit das er mir jetzt immer nur einmal den Artikel ausgibt so wie gewünscht nur wird die anzahl nicht hochgezählt.

              Ich denke jetzt dürfte das Problem in der While schleife liegen oder?



              b) einer prüfung bei der eingabe, ob der artikel schon in der tab ist
              wenn ja, dann um anzahl erhöhen, wenn nein, dann einstellen
              geht leider nicht weil ich eine genau übersicht brauche wann was eingegangen ist und zwar von jedem mitarbeiter.


              Toast

              Kommentar


              • #8
                sollte eignetlich klappen,

                der wert steht nu in "menge" nicht in "anzahl"

                oder es liegt am spaltentyp, ich weiss im moment nicht, was
                mysql mit char, varchar etc anstellt.
                Kissolino.com

                Kommentar


                • #9
                  hey echt sorry aber ich stehe gerade voll auf dem schlauch wie greif ich jetzt auf "menge" zu. Sorry echt aber ich blicke gerade nichts merh.

                  Toast

                  Kommentar


                  • #10
                    PHP-Code:
                     echo '<td width=15% bgcolor="#e7e7e7" align="center">'.$line->menge.'</td>'
                    Kissolino.com

                    Kommentar


                    • #11
                      Danke jetzt klappts und sorry nochmal für die dumme frage aber war gerade ein sehr dicker schlauf

                      Kommentar


                      • #12
                        Original geschrieben von Toast
                        Danke jetzt klappts und sorry nochmal für die dumme frage aber war gerade ein sehr dicker schlauf
                        wo ist das problem? wir sind ja noch deutlich unter 40 antworten
                        Kissolino.com

                        Kommentar


                        • #13
                          Wenn das so ist dann kann ich dich ja gleich nochwas fragen.

                          wie kann ich jetzt noch mit where zusätzlich selektieren? z.B. nach dem Eingangsdatum das ebenfalls mit eingegeben wird?

                          Toast

                          Kommentar


                          • #14
                            OffTopic:
                            na suuuper, da gibt man dir den kleinen finger ....


                            indem du das sql statement erweiterst:
                            PHP-Code:
                            sql="select *, sum(Anzahl) as menge from lieferliste where SPALTE='DerWert' GROUP BY Artikel ORDER BY IrgendeineSpalte LIMIT 0,10"
                            liefert dir max 10 zeilen, wo
                            > Spalte='DerWert'
                            ist, sortiert nach
                            > ORDER BY IrgendeineSpalte

                            schaust du mal hier vorbei: http://www.mysql.de/doc/de/Reference.html

                            gruss
                            wurzel
                            Kissolino.com

                            Kommentar


                            • #15
                              Hi,

                              danke aber leider geht es nicht:

                              PHP-Code:
                              $query mysql_query("select *, sum(anzahl) as menge from lieferliste where empf_id = '$userid' GROUP BY artikel") or mysql_error(); 
                              So sieht die Abfrage aus. Aber leider geht es nicht

                              Toast

                              Kommentar

                              Lädt...
                              X