Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用复选框从数据库中删除多个数据_Php_Database_Sql Delete - Fatal编程技术网

Php 使用复选框从数据库中删除多个数据

Php 使用复选框从数据库中删除多个数据,php,database,sql-delete,Php,Database,Sql Delete,如何使用复选框从表中删除多个数据? 我有以下代码: <form id="prefForm" action="coments-del.php" method="post"> <? $result = mysql_query("SELECT * FROM comments"); $myrow = mysql_fetch_array($result); do { $res = mysql_query("SELECT title FROM data WHERE

如何使用复选框从表中删除多个数据? 我有以下代码:

<form id="prefForm" action="coments-del.php" method="post">

<?

$result = mysql_query("SELECT * FROM comments");      
$myrow = mysql_fetch_array($result);

do
{
    $res = mysql_query("SELECT title FROM data WHERE id=$myrow[post]");
    $row = mysql_fetch_array($res);
    printf ("
         <tr>
           <td>
                <input type='checkbox' name='id' value='%s'  />
                </td>        
                <td>%s</td>
           <td>%s</td>
                <td>%s</td>
         ",$myrow["id"],$myrow["id"],$myrow["author"],$myrow["text"]);
}
while ($myrow = mysql_fetch_array($result));
?>

<input name="submit-button" type="submit" value="Delete" />
</form>
正文处是处理删除的代码

<?php 
if (isset($id)) {
    $result = mysql_query ("DELETE FROM comments WHERE id='$id'");

    if ($result == 'true') {echo "Comment Deleted!";}
    else {echo "Error: Nothing was deleted!";}

} else {
    echo "Unknown Error! Contact Administrator.";
}

?>

我不确定是否理解您的意思,但我通常会将PK保存到数组中,然后执行以下操作:

<?php
//... process your ids (eg. filter out not numerical values) and save into an array

if(count($ids_array)>0){
   mysql_query('DELETE FROM comments WHERE id IN ('.implode(',', $ids_array).')');
}
?>

第一步是将复选框命名为数组

<input type='checkbox' name='id[]' value='%s'  />

最后将该子句放入where子句中的查询。

这里是强制性的“you should use”注释。因此,提交后我必须将您的php代码放入代码中?这个-coments-del.php?是创建帖子的html表单的第一部分,是comments-del.php的第二部分。但是它不起作用。我在comments-del.php中粘贴了最后一部分,但它不起作用。
<input type='checkbox' name='id[]' value='%s'  />
$clause="";
if (isset($_POST['id'])) { 
   foreach ($_POST['id'] as $p)
   $clause.="id='$p' OR"; 
}
$clause=substr($clause,0,-2);