Mehrere Zeilen auf einmal speichern?

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

  • Mehrere Zeilen auf einmal speichern?

    Hallo,
    Ich stehe mal wieder vor einem Problem!
    Folgendes: Ich gebe mittels while-Schleife(php) und select(mysql) mehrere Zeilen aus einer Datenbank in ein Formular aus.
    Diese möchte ich nun verändern können und speicher. Und nun das Problem:
    Bei mir wird immer nur die Änderung in der letzten Zeile gespeichert! Die Zeilen davor nicht!
    Wie kann ich das ändern?
    Gruß Tobias

  • #2
    zeig mal deinen Code!

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Mehrere Zeilen auf einmal speichern?

      Tja, den Code habe ich leider nicht bei mir,
      aber sinngemäß lautet er ungefähr so:

      Aufruf:

      form action...

      mysql_connect (localhost, root, root);
      mysql_select_db (DB);

      $result = mysql_query ("SELECT * FROM a order by id asc");

      while($row = mysql_fetch_array($result))
      {
      Table...
      echo"<input type=text ... $row[id]";
      echo"<input type=text ... $row[c]";
      echo"<input type=text ... $row[d]";
      echo"<input type=text ... $row[e]";
      echo"<input type=text ... $row[f]";
      usw.

      }
      }
      ?>
      </form >

      Ausgegeben werden immer 9 Zeilen
      die ich dann alle zusammen nach Veränderung abspeichern möchte.

      Speichern :

      dasselbe wie oben, nur
      $result = mysql_query ("Replace into a (id,c,d,f) value ($id,$c,$d,...)");

      oder so ähnlich, sorry besser gehts nicht aus dem Kopf!

      Gruß Tobias

      Kommentar


      • #4
        Interessant wäre zu wissen welche Namen du deinen Input-Tags gibst. Wenn du - wie ich vermute - die Felder in jeder Zeile gleich nennst, ist es kein Wunder, daß du immer nur die letzte Zeile übergeben bekommst.
        Du mußt also (da sich mehrdimensionale Arrays leider nicht übergeben lassen) für jede Zeile ein eigenes Array erzeugen:

        Code:
        for ($i=0; $row = mysql_fetch_array($result); $i++) {
          Table... 
          echo '<input type="text" name="row'.$i.'[id]" value="'.$row[id].'">'; 
          ...
        }
        // damit das Folgeskript weiß, wieviele Arrays es sind:
        echo '<input type="hidden" name="rowcount" value="'.$i.'">';

        im Folgeskript kannst du dann mit
        Code:
        for ($i=0; $i<$rowcount; $i++) {
          $row = ${'row'.$i};
          ...
        }
        die einzelnen Zeilen speichern.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X