Juliane: Mehrere Einträge aus SQL-Datenbank löschen

Folgende Frage:

Habe die Ausgabe einer SQL-Datenbank, manche Einträge müssen manchmal gelöscht werden.

Bis jetzt habe ich hinter jedem Eintrag einen Link in der Form loeschen.php?id=123 (z.B. für den Eintrag mit der ID 123).

Nun würde ich aber gerne per Häckchen setzen und dann mit einem Buttonklick entscheiden, welche Einträge gelöscht werden sollen.

Mir fällt dafür aber keine Lösung ein. Gibt es vielleicht irgendwo ein fertiges Skript oder ein Beispiel für diese Anforderung?

Hier schon mal ein paar Überlegungen, damit ihr seht, dass ich nicht ganz faul war: Der SQL-Befehl muß wohl "Delete from lalala where id=123 OR id=178 OR id=214". Aber die Zahl der Beiträge, die gelöscht werden müssen ist jedes mal unterschiedlich. Also muß wohl eine Schleife her. While... irgendwas... tja, da scheiterts bei mir.

Vielen Dank,
Juliane

  1. hi,

    Nun würde ich aber gerne per Häckchen setzen und dann mit einem Buttonklick entscheiden, welche Einträge gelöscht werden sollen.

    Erzeuge dynamisch ein Formular mit Checkboxen, als deren value du die ID des jeweiligen Datensatzes benutzt.

    Hier schon mal ein paar Überlegungen, damit ihr seht, dass ich nicht ganz faul war: Der SQL-Befehl muß wohl "Delete from lalala where id=123 OR id=178 OR id=214".

    WHERE id IN (123, 178, 214)
    dürfte sich vermutlich eher anbieten.

    Aber die Zahl der Beiträge, die gelöscht werden müssen ist jedes mal unterschiedlich. Also muß wohl eine Schleife her. While... irgendwas... tja, da scheiterts bei mir.

    Lass dir die Checkbox-Werte als Array übermitteln. In PHP geht das z.B., in dem du einen Namen für alle Checkboxen benutzt, und eckige Klammern an den Namen anhängst: name="xyz[]".

    Mittels implode o.ä. ist es dann ein leichtes, diese Werte Komma-getrennt aneinanderzureihen, um obige WHERE IN-Syntax zusammenzustellen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. vielen dank.... habs schon umgesetzt, und es funzt. haltet mich für doof oder nicht, aber mit diesem problem habe ich mich schon seit jahren rumgeschlagen, aber es nie versucht, zu lösen... sondern statt dessen jeden eintrag immer einzeln gelöscht

      1000 Dank!
      Julchen

  2. Die Checkbixen mit name=irgendwas[] versehen.
    Dann in der PHP:

    foreach($_POST[irgendwas] AS $id){
    $QueryString .= " OR id=$id";
    }