leidiges foreach

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

  • leidiges foreach

    Hi!

    Ich übergebe per Formular 2 Arrays und möchte, daß die betroffenen Datensätze in der DB upgedated werden:

    $wid ist die ID des DB-Eintrags
    $menge ist der wert, der vom User eingetragen wird

    PHP-Code:
    foreach ($_POST[wid] AS $wid) {
    foreach (
    $_POST[menge] AS $menge) {
    mysql_query("UPDATE warenkorb SET menge='$menge' WHERE ID='$wid'");
    }}
    print_r($_POST); 
    Wenn ich in Feld1 den Wert "1",.... Feld3 den Wert "3" eintrage:
    PHP-Code:
    Array ( [wid] => Array ( [0] => [1] => [2] => ) [menge] => Array ( [0] => [1] => [2] => 
    In der Datenbank wird aber in allen 3 Datensätzen der betroffenen ID´s "3" eingetragen.

    Was mach ich falsch?
    Danke, LG, Citral

  • #2
    Re: leidiges foreach

    Original geschrieben von Citral
    Was mach ich falsch?
    du verwendest foreach 2x wo 1x reicht.
    Kissolino.com

    Kommentar


    • #3
      die logik ist kaputt.
      ersetze mysql_query durch echo und du siehst sofort, was los ist.

      Kommentar


      • #4
        Re: Re: leidiges foreach

        Original geschrieben von Wurzel
        du verwendest foreach 2x wo 1x reicht.
        Also glaubt mir, ich hab schon soviele Variationen ausprobiert > ich weiß nicht, was ich noch probieren soll.

        Hab auch mysql_query durch echo ersetzt und gesehen, daß das so nicht gehen kann :-(

        Wie kann ich BEIDE arrays in EINE foreach-Schleife packen?

        LG, Citral

        Kommentar


        • #5
          also der letzte Wert aus $_POST['menge'] wir eingetragen weil Du für jede wid das ganze array menge durchgehst und immer ein update machst...

          wie kannste es anders machen?
          evt erst mal die Anzahl der elemente in $_POST['wid'] ermitteln oder eben nur eine foreach wie schon bemerkt und menge immer hinzunehmen...
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            ok, vielleicht bin ich wirklich zu doof dazu...

            Hab jetzt folgendes gemacht:

            PHP-Code:
            foreach ($_POST[menge] AS $menge) { 
            echo(
            "UPDATE warenkorb SET menge='$menge' WHERE ID='$_POST[wid]'");

            Ausgabe:
            PHP-Code:
            UPDATE warenkorb SET menge='1' WHERE ID='Array'UPDATE warenkorb SET menge='2' WHERE ID='Array'UPDATE warenkorb SET menge='3' WHERE ID='Array' 
            Ich weiß einfach nicht, wie ich in EINER foreach-Schleife BEIDE Arrays verarbeiten kann...

            foreach ($_POST[var1] AS $var1)($_POST[var2] AS $var2) {}
            und ähnliche Experimente hab ich schon gewagt, aber ich komm einfach nicht drauf.

            Bitte gebt mir noch einen Hint bzw. wenn ihr es eh wißt > DIE LÖSUNG

            Danke.

            Kommentar


            • #7
              for ist dir bekannt? dürfte in diesem fall deutlich einfacher sein.
              Kissolino.com

              Kommentar


              • #8
                Du solltest keinen warenkorb/shop programmieren...
                Du bist ja schon mit sonem simplen array überfordert...
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  Oh Mann, MelloPie... Anstatt hier halbstarke Sprüche abzulassen hättest du deine Energie auch aufwenden können, um meine Frage zu beantworten... Das fällt dann unter den Begriff "Hilfestellung"...

                  By the way: Das ist nicht für ein "Shopsystem", sondern für ein Anfrage-Formular. Hab halt in meiner Programmiererei ziemlich festgefahrene Routinen, bei denen ich bis dato so eine Funktion nicht benötigt habe.
                  Ich weiß eh, daß das keine besonders schlaue Frage ist und bin auch nicht gerade stolz darauf, daß ich nicht selbst draufkomme.

                  Aber so ist nun mal der Stand der Dinge.

                  Gruß, Citral

                  Kommentar


                  • #10
                    Mach Dir nicht ins Höschen...

                    Hilfestellung? Siehe oben.
                    Logisch denken könnteste noch anschalten dann wirds schon was. So ich geh jetzt noch ein paar halbstarke Sprüche machen...
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      hint: wenn $asd ein array ist, sind seine elemente durch $asd[$i] ansprechbar. achtung, wir hängen ein [$i] dran. nun deine frage - was ist, wenn asd["bla"] ein array ist, was muss man dranhängen, um seine elemente anzusprechen?

                      Kommentar


                      • #12
                        ok, ich denke das war der richtige Hint...

                        PHP-Code:
                        $i=0;
                        foreach (
                        $_POST[wid] AS $wid) {
                        $menge=$_POST[menge];
                        echo(
                        "UPDATE warenkorb SET menge='$menge[$i]' WHERE ID='$wid'");
                        $i++;

                        SO FUNKTIONIERTS!!!

                        Ist noch irgendwas schräg dran oder kann man´s besser/einfacher schreiben?

                        Danke, LG, Citral

                        Kommentar

                        Lädt...
                        X