foreach() schlaufe will nicht durchlaufen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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');

    Comment


    • #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é

      Comment


      • #4
        les mal eins obendrüber

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

        Comment


        • #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!
          Last edited by rönee; 27-01-2005, 23:20.

          Comment


          • #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!

            Comment


            • #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]' 

              Comment

              Working...
              X