foreach() schlaufe will nicht durchlaufen

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

  • foreach() schlaufe will nicht durchlaufen

    Hallo zusammen,

    Meine Schlaufe arbeitet jeweils nur den letzten Array ab. Ich meine es korrekt geschrieben zu haben, die einzelnen Array kann ich auch jederzeit auslesen.

    Im Form übergebe ich die Array wie folgt:

    PHP-Code:
    <input type="hidden" name="id_k1[]" value="$id_t1size='30'
    Die Schlaufe sieht so aus
    PHP-Code:
    $menu_beschreib_t1 $_POST["menu_beschreib_t1"];

    $_POST['id_k1'];
    foreach(
    $id_k1 as $var1)
    {
    $abfrage_edit1 "update $tab set menu_beschreib='$menu_beschreib_t1' where id_karte ='$var1'";
    $result_edit1 mysql_query($abfrage_edit1$conn);
    }

    if (
    $result_edit1)
    {  
    echo<<<ABC
    <div id='boxhead2' style="width:564">
    Die Daten wurden erfolgreich in der Datenbank geändert. 
    $id_k1[0] , $id_k1[1]</div>
    ABC;
    }
    else
    {
    echo<<<ABC
    $fehler
    ABC;

    leider wird nur jeweils der letzte Array updatet!

    Ich sehe keinen Fehler, wer sieht einen oder kann mir einen anderen Tipp beisteuern?

    Danke
    René

  • #2
    schau mal vor der Schleife was überhaupt im Array drin ist
    print_r($id_k1);
    und mache dann in der Schleife mal eine Ausgabe der Query
    echo $abfrage_edit1 ."<br>";

    um zu sehen was da überhaupt passiert.

    bei der Query vielleicht noch
    $result_edit1 = mysql_query($abfrage_edit1, $conn) or die(mysql_error());
    require_once('gehirn_v_02beta.php');

    Kommentar


    • #3
      Danke toshi

      Ich habe nun alle test gemacht aber mein Fragezeichen wwurde nur grösser, denn:

      print_r($id_k1);
      gibt meiner Ansicht die richtigen werte aus

      Array ( [0] => 17 [1] => 19 [2] => 21 [3] => 23 [4] => 25 )

      Was mich aber verwirrt ist der Eintrag von echo $abfrage_edit1 ."<br><br>";


      update zcms_menu_karte set menu_beschreib='Rosmarin' where id_karte ='17'

      update zcms_menu_karte set menu_beschreib='Rosmarin' where id_karte ='19'

      update zcms_menu_karte set menu_beschreib='Rosmarin' where id_karte ='21'

      update zcms_menu_karte set menu_beschreib='Rosmarin' where id_karte ='23'

      Das Array 25 wird hier nicht ausgegeben, ist aber das einzige Array welches funktioniert; also das update schreibt!

      Der Inhalt der einezelnen beschreibe ist verschieden nicht wie hier ausgegeben immer der selbe!


      Ich weiss nicht weiter...noch einen Tipp?

      Danke

      René

      Kommentar


      • #4
        les mal eins obendrüber

        PHP-Code:
        or die(mysql_error()); 
        haste das gemacht?
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          Ja, habe ich auch einfliessen lassen, wird aber nicht aufgerufen da der Eintrag gemacht wird und die Meldung "Die Daten wurden erfolgreich in der Datenbank geändert." erscheint.

          Sorry, unter diesen Umständen dachte ich diesen Zusatz nicht mehr zu erwähnen!

          Ich musste jetzt aber auch feststellen das er wirklich auch alle Daten mit dem ersten Datensatz überschieben hat! Wie ausgegeben!
          Zuletzt geändert von rönee; 27.01.2005, 23:20.

          Kommentar


          • #6
            $menu_beschreib_t1 ist doch auch ein array?
            Dann versuchs mal so:
            PHP-Code:
            $menu_beschreib_t1 $_POST["menu_beschreib_t1"];
            $x 0;
            $_POST['id_k1'];
            foreach(
            $id_k1 as $var1)
            {

            $abfrage_edit1 "update $tab set menu_beschreib='".$menu_beschreib_t1[x]."' where id_karte ='$var1'";
            $result_edit1 mysql_query($abfrage_edit1$conn);
            $x++;
            }

            if (
            $result_edit1)
            {  
            echo<<<ABC
            <div id='boxhead2' style="width:564">
            Die Daten wurden erfolgreich in der Datenbank geändert. 
            $id_k1[0] , $id_k1[1]</div>
            ABC;
            }
            else
            {
            echo<<<ABC
            $fehler
            ABC;

            Für Rechtschreibfehler übernehme ich keine Haftung!

            Kommentar


            • #7
              Alles klar, ja ich muss die Array auch abzählen, schande über mein Haupt!

              Aber in Deinem Script hat sich auch ein kleinen Fehler eingeschlichen.

              x ist eine Variabel also $x

              PHP-Code:
              menu_beschreib='$menu_beschreib_1[$x]' 

              Kommentar

              Lädt...
              X