sql >> Databáze >  >> RDS >> Mysql

Smazat více řádků s PDO a zaškrtávacími políčky pomocí připravených výpisů?

Přiřazujete stejný name="deletetask" pro každé zaškrtávací políčko. Když tedy odešlete svůj formulář, obdržíte pouze poslední vybraný deletetask hodnota. Takže tady je vaše chyba

<input class="checkbox" name="deletetask" value=

Mělo by být

<input class="checkbox" name="deletetask[]" value=

Musíte tedy přejmenovat deletetask na deletetask[] takže vaše zaškrtávací políčka jsou odeslána jako pole a poté proveďte něco jako

$todelete = $_POST['deletetask']; 
//or $_GET, if you are submitting form through get. But I would recommend you using POST
$stmt = $pdo->prepare("DELETE FROM table WHERE id = ?");
foreach ($todelete as $id)
    $stmt->execute($id);


  1. přirozené třídění mysql

  2. pole pro více podmínek where_in v codeigniter

  3. ekvivalent onbeforeprint() a onafterprint() pro prohlížeče bez IE

  4. Správný způsob, jak se zeptat, zda mysql_num_rows v PHP