1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

SQL Update in einer WHILE Schleife

Dieses Thema im Forum "PHP" wurde erstellt von NemoFinder, 17. Oktober 2016.

  1. NemoFinder

    NemoFinder Mitglied

    Hallo,

    ich stehe mal wieder vor einem Problem und hoffe, dass ich es hier halbwegs vernünftig erklärt bekomme. In einer Tabelle wird die "ID", "Text" und "Status" gespeichert. Diese Liste lasse ich mir anzeigen und will nun in jeder ausgegebenen Zeile einen Button haben mit dem ich den Status der jeweiligen Zeile ändern kann.

    PHP:
    1. //-- SQL Abfrage Liste
    2. $sql1 = "SELECT * FROM tabelle WHERE status ='1'";
    3. $ausgabe = mysql_query($sql1) or die('Konnte die Abfrage nicht durchführen, weil ' . mysq_error());
    4. while($row = mysql_fetch_array($ausgabe)){
    5. echo "<tr>
    6. <td>{$row['id']}</td>
    7. <td>{$row['text']}</td>
    8. <td>{$row['status']}</td>
    9. <td><input type='submit' name='status' value='aendern'/></td></tr>";
    10. }

    Hier die Update Funkion wie ich sie mir überlegt habe. Hier müsste ich noch ein 'WHERE id=' anfügen. Weiß aber nicht genau wie die Abfrage richtig aussehen muss und wo sie hin geschrieben werden muss. Weswegen frage ich jetzt hier um rat.

    PHP:
    1. //-- SQL Abfrage bezahlt
    2. if(isset($_POST['status']){
    3. $sql2 = "UPDATE tabelle SET status='2'";
    4. $bezahlt = mysql_query($sql2) or die("Fehler: ".mysql_error());
    5. }
     
  2. Bratkartoffel

    Bratkartoffel gebratene Kartoffel Premium-User

    Hi,

    Die mysql_*-Funktionen sind schon seit Jahren deprecated (veraltet) und wurden mit PHP 7 bereits entfernt. Bitte stattdessen mysqli oder PDO verwenden.
    Dein Update-Script weiss nicht, welcher Button gedrückt wurde, weil du mehrere Buttons mit der gleichen ID hast (übrigens ungültiges HTML).

    Bau dir ein extra Form in jeder Zeile mit einem Hidden-Feld für die ID. Bei deinem obigen Beispiel also in etwa so:
    Code (PHP):
    1. echo "...
    2. <td>
    3.  <form action=\"updateScript.php\">
    4.    <input type=\"hidden\" name=\"id\" value=\"{$row['id']}\" />
    5.    <input type=\"submit\" name=\"status\" value=\"aendern\"/>
    6.  </form>
    7. </td></tr>";
    Die einfachen Anführungszeichen sind bei HTML meines Wissens nach auch nicht Standardkonform.

    Grüsse,
    BK
     
Die Seite wird geladen...