首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用复选框从数据库中删除多行?

如何使用复选框从数据库中删除多行?
EN

Stack Overflow用户
提问于 2014-04-13 15:08:10
回答 2查看 331关注 0票数 0

我试图使用复选框从数据库中删除多行。

我在foreach循环中有一个html表来查找表值。

我想在这个表中放置一个delete按钮来删除某一行中的所有值。

但我不知道该如何做,我使用了以下代码:

代码语言:javascript
复制
if (isset($_POST['delete']) && (!empty($_POST['checkbox']))){
$del_id = $_POST['checkbox']; 

foreach($del_id as $value){
   $sql = "DELETE FROM my_table WHERE id='".$value."'";
   $result = mysql_query($sql);
}
}

我在foreach循环中有这段代码

代码语言:javascript
复制
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox' type='checkbox'/></td>

<input type='hidden' name='id' value=".$key['job_id']." />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-13 15:17:38

您需要将此代码更改为

代码语言:javascript
复制
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox' type='checkbox'/></td>

到某种程度上

代码语言:javascript
复制
<td><input style='width: 50px;' class='delete' value='delete' name='checkbox[]' type='checkbox'/></td>

请参阅name='checkbox'name='checkbox[]'之间的区别,然后在php代码中。写像这样的东西

代码语言:javascript
复制
print_r($_POST);

你会得到所有的价值..。试试这个。

票数 2
EN

Stack Overflow用户

发布于 2014-04-13 15:15:59

应该将复选框视为数组:

代码语言:javascript
复制
<input style='width: 50px;' class='delete' value='delete' name='checkbox[]' type='checkbox'/>

此外,与其为收到的每个MySQL值创建一个新的checkbox语句,还可以使用IN()命令:

代码语言:javascript
复制
if (isset($_POST['delete']) && (!empty($_POST['checkbox']))){
$del_ids = implode(',', $_POST['checkbox']); 

$sql = "DELETE FROM my_table WHERE id IN('".$del_ids."')";
}

然而,我强烈建议使用预先准备好的声明。您似乎也没有净化$_POST变量中的值--非常危险。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23044352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档