【问题标题】:Multiple checkboxes delete not working多个复选框删除不起作用
【发布时间】:2013-11-22 23:12:15
【问题描述】:

我正在尝试使用复选框从表中删除一行。对于所有选中的复选框,全部删除。下面的代码不适用于多个复选框。它一次只会删除一行。有什么想法吗?我正在使用 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>

【问题讨论】:

  • 每次调用execute时都应该绑定id。现在,您只是一遍又一遍地删除同一行。
  • @BartFriederichs 试过了,没用。

标签: php mysql checkbox pdo mysqli


【解决方案1】:

您必须将 bind_param 放入循环中:

foreach  ($_POST['id'] as $id) {
    $stmt->bind_param('ss', $username->username, $id);
    $stmt->execute();
}

【讨论】:

  • @Lmxc 你能 var_dump($_POST['id']);在 foreach 之前?
  • 删除第一行时显示array(1) { [0]=&gt; string(2) "43" },但是当我尝试仅检查第二行时,它什么也没显示。
  • 我终于想通了,我把结束的&lt;/form&gt;标签放在了结果显示的地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-15
  • 2012-05-21
  • 2012-01-21
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
相关资源
最近更新 更多