-1

チェックボックスを使用してテーブルから行を削除しようとしています。チェックされているすべてのチェックボックスについて、すべて削除します。以下のコードは、複数のチェックボックスでは機能しません。一度に 1 行だけ削除します。アイデアはありますか?pdo を使用して行を表示し、mysqli の準備済みステートメントで削除を行っています。

<?php
if (isset($_POST['delete'])) 
 {
 if(!empty($_POST['id'])){
 $stmt = $mydb->prepare("DELETE  FROM products where username = ?  and id = ? ");
 echo $mydb->error;
 $stmt->bind_param('ss', $username->username, $id);
 foreach  ($_POST['id'] as $id) {
$stmt->execute();
}

$errors  = "Product Deleted.";
}
}
?>
<form action="" method="post">

<div>
     <input type="submit" value="delete" name="delete">
<?php
 /*
 * Get and/or set the page number we are on
 */
if(isset($_GET['page']))
{
    $page = $_GET['page'];
}
else
{
    $page = 1;
}
$options = array(
    'results_per_page'              => 10,
    'url'                           => 'index.php?page=*VAR*',
    'db_handle'                     => $dbh,
    'using_bound_params'           => true  
);
try
{   
   $paginate = new pagination($page, "SELECT * FROM products where username =  :param_a   order by id desc", $options);
   $paginate->bindParam(':param_a', $username->username, PDO::PARAM_STR, 12);  
   $paginate->execute();

}
catch(paginationException $e)
{
    echo $e;
    exit();
}
/*
 * If we get a success, carry on
 */
if($paginate->success == true)
{
$paginate_result = $paginate->resultset->fetchAll();
foreach($paginate_result as $row)
{
?>
<input type='checkbox' name='id[]'  class='check' value="<?php   echo $row['id'];?>
<?php
echo $row['title'];
echo $row['description'];
}
}?>
</div>
</form>
4

1 に答える 1

0

bind_param をループ内に配置する必要があります。

foreach  ($_POST['id'] as $id) {
    $stmt->bind_param('ss', $username->username, $id);
    $stmt->execute();
}
于 2013-11-11T08:07:18.453 に答える