Foreach-Routinen funktionieren nicht mehr nach Script-Umzug

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

  • Foreach-Routinen funktionieren nicht mehr nach Script-Umzug

    Guten Tag!

    Ich habe heute Scripte und eine SQL-Datenbank von einem Server auf einen anderen umgezogen. Auf dem neuen Server bekomme ich auf einmal Fehlermeldungen für die foreach-Routinen wie z.b:

    foreach($_POST['pic_text_vorhanden'] as $key => $val) {
    if (isset($key)) {
    ${'pic_text_vorhanden'.$key}=$val;
    };
    };

    Die Fehlermeldungen lauten
    Invalid argument supplied for foreach() in /mnt/web5/40/10/5160210/htdocs/nl/edit_artikel_3.php on line 175

    Die neue Datenbank ist Mysql 5 statt wie vorher 4 - kann es daran liegen?

    Weiß jemand sonst, wie das Problem zu lösen ist?

    Vielen Dank für Hilfestellungen!

  • #2
    Lass mich raten, $_POST['pic_text_vorhanden'] ist kein Array?
    Hättest du mit ner simplen Testausgabe prüfen können.

    Die neue Datenbank ist Mysql 5 statt wie vorher 4 - kann es daran liegen?
    Sicher nicht. Der Code hat absolut gar nichts mit der Datenbank zu tun.

    Übrigens, der ganze Code ist ziemlich mieser Stil.
    EDIT:
    Eigentlich kannst du auch direkt den ganzen Code in die Tonne hauen und mit dem Array $_POST['pic_text_vorhanden'] weiterarbeiten, sofern es denn eins ist.
    Zuletzt geändert von TobiaZ; 23.05.2008, 17:02.

    Kommentar


    • #3
      Hallo,

      danke für die Antwort! Doch, es ist schon ein Array, die werden wie folgt übergeben:

      <input type=\"hidden\" name=\"pic_text_vorhanden[". $i ."]\" value=\"$pic_text\" />

      Was wäre denn ein besserer Stil? Die Scripte sind vor längerer Zeit von jemand anderem geschrieben worden, und ich versuche mich jetzt mit meinem Anfängerwissen darin zurecht zu finden...

      Viele Grüße, nikita

      Kommentar


      • #4
        Dann mach doch bitte erstmal ne Testausgabe print_r und zeig uns den Inhalt des Arrays.

        Kommentar


        • #5
          ... sorry, habe jetzt erst dein "edit" gesehen. Der ganze Kram wird auf einmal in die Datenbank eingetragen:

          $i=1;

          for ($i; $i<$anzahl_picsonpage; $i++) {

          if (!(isset(${'delete_pic'.$i}))) {
          if ((isset($pic_big_vorhanden[$i])) && (!($_FILES['pic_big']['name'][$i]))) {

          $pics_insert_okok2=mysql_query("INSERT INTO pics (pics_artikel,pic_big,pic_thumb,pic_text,pic_copyright) VALUES ('$edit_content','${'pic_big_vorhanden'.$i}','${'pic_thumb_vorhanden'.$i}','${'pic_text_vorhanden'.$ i}','${'pic_copyright_vorhanden'.$i}')");

          };

          Es hat ja auf dem alten Server auch funktioniert, so wie es ist. Abgesehen davon, dass es schlechter Code ist: Woran könnte es liegen, dass die Funktionen auf dem neuen Server nicht laufen?

          Danke & Grüße

          Kommentar


          • #6
            Aber bis zum eintragen in die Datenbank kommt der Code ja offensichtlich gar nicht.

            Bitte poste jetzt deine Testausgabe, damit wir uns erstmal um das eigentliche Problem kümmern können.

            Kommentar


            • #7
              Danke für den Hilfeversuch... aber ich habe keine Ahnung, wie das geht. Die Scripte sind alle ziemlich umfangreich, und machen eine Menge Sachen auf einmal - ich weiß gar nicht, wie ich dieses Array ansprechen soll. Ich kann mir das Ganze erst am Montag wieder anschauen - vielleicht finde ich ja dann eine Lösung.

              Trotzdem Danke.

              Kommentar


              • #8
                naja, ein print_r($_POST['pic_text_vorhanden']); ist jetzt nicht so schwer, zumal ich dir den Link zum Manual gegeben habe.

                Ich verschiebe dich aber mal sicherheitshalber nach Projekthilfe, weil ein paar Grundlagen halt schon vorhanden sein sollten...

                Kommentar

                Lädt...
                X