TC Sebastian: Mit Checkboxen Einträge löschen...

Hallo,

ich habe beispielsweise 3 Einträge in der MySQL Datenbank und exakt 2 Spalten. Eine "ID" und eine mit "Name".

Nun liest ein Skript diese 3 Einträge raus, und setzt links auch jeweils eine Checkbox hin. Der Name der Checkbox ist mit dem ID Namen vergeben. Wie schaffe ich es, wenn man auf "Absenden" klickt, das der alle ANGEKREUZTEN Einträge löscht?

Ich weiß nicht wie ich anfangen soll. Das wäre nett...

<input type="checkbox" name=" . $eintrag['id'] . " value="checkbox">

  1. Du solltest die checkboxen in ein array packen, also
    <input type='checkbox' name='xxx[$id]' ...>
    wobei $id natürlich durch die id zu ersetzen ist. In $_POST erscheint xxx dann als array, wobei die id den Index bildet. Dann kannst du folgendes schreiben:

    foreach ($_POST["xxx"] as $id => $value)
    {
      if (0 < strlen($where))
        $where .= " OR (id=$id)";
      else
        $where = "(id=$id);
    }
    $query = "DELETE FROM tabelle WHERE $where";

    Anschließend $query ausführen, fertig.
    Das $value in der foreach Anweisung brauchst Du nur aus syntaktischen Gründen, wichtig an dem Feld ist nur der Index, der ja mit der id identisch ist. Ich nehme mal an, daß das Feld id in der Tabelle ein auto_increment Primärschlüssel ist.

    Das ist so in etwa das Grundgerüst.

    MfG
    Gerhard

    1. Kann ich das dann so machen? Also das mit dem Array?

      xxx[$eintrag['id']     ??

      1. Formelemente mit Namen in Array-Syntax werden in PHP als Felder in $_POST bereitgestellt (sofern es sich um einen POST handelt). Wenn also
        <input type='text' name='feld[1]'>
        <input type='text' name='feld[3]'>
        <input type='text' name='feld[4]'>
        in einem Formular enthalten ist, so kommt das als $_POST["feld"][1], $_POST["feld"][3] usw. in PHP an, wobei Array eigentlich nicht ganz korrekt ist, da das eher eine assoziative Sammlung darstellt. Das Element $_POST["feld"][2] besipielsweise gibt es nicht und PHP liefert bei Abfrage null.
        $_POST["feld"] kann ganz nmormal als Array verwendet werden. foreach ist eine von mehreren Möglichkeiten, ein Feld zu durchlaufen. So liefert
        foreach ($array as $key => $value)
        im Anweisungsrumpf alle Paare ($key,$value), so dass gilt $array[$key]==$value.

        Hoffe, das hilft.

        MfG
        Gerhard

        1. P.S. Hast du ICQ, MSN oder so?

          Würde nicht lange dauern,...circa 5 mins nur..

          Weil ein Prob hab ich noch... aber in ICQ oder so würd es schneller gehen :)

          1. Kann ich leider nicht mit dienen. Poste einfach dein Problem hier.

            MfG
            Gerhard

    2. Hi,

      foreach ($_POST["xxx"] as $id => $value)

      [...]

      Gerhard, Du bist neu hier. Dein Einsatz ist lobenswert und soll auch nicht gebremst werden; aber bitte beachte, dass es in diesem Forum als eher schädlich denn nützlich angesehen wird, fertige Codes zu liefern - die Rückfrage von TC Sebastian zeigt Dir Gründe dazu. Ich wäre Dir dankbar, wenn Du Deine Antworten entsprechend modifizieren würdest. Details kannst Du dem Archiv entnehmen.

      Cheatah

      --
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    Der Name der Checkbox ist mit dem ID Namen vergeben.

    warum denn dieses?

    Wie schaffe ich es, wenn man auf "Absenden" klickt, das der alle ANGEKREUZTEN Einträge löscht?

    Indem Du die übertragenen Einträge ermittelst und die zugehörigen Datensätze löschst. Nicht angekreuzte werden Dir nicht oder leer übermittelt.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes