PHP 批量删除

小弟是新手,请教帮忙做一下PHP几个复选框,选中,批量删除的代码<trclass="textCentb"><td><inputtype="checkbox"value="... 小弟是新手,请教帮忙做一下 PHP 几个复选框,选中,批量删除的代码

<tr class="textCent b">
<td><input type="checkbox" value="" id="selAll"/></td>
……

<?php while($info=mysql_fetch_array($sql)) {?>
<tr class="textCent">
<td><input type="checkbox" name="Arr[]" value="<?php echo $info['ID']; ?>" />
</td>

<a href="main.php?url=315ComplaintInfo&act=delAll&ID=<?php echo $info['ID'] ?> " onclick="return confirm('确定删除这条投诉内容嘛?');">
<img src="../images/delImg.gif"/> 批量删除</a>

<?php
if (act==delAll)
{
$id=implode('ID');
$db->query("DELETE FROM tb_complain WHERE ID in $id)
{echo "数据删除成功!";}
}
?>
// 这段PHP代码有问题啊,请教一下,应该怎么写呢?
说明一下:main.php?url=315ComplaintInfo 指的就是本页
展开
 我来答
jiangxibaiyi
2012-04-28 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14411

向TA提问 私信TA
展开全部
问题很大,
首先,act==delAll是怎么来的?还有$id=implode('ID')这也是错误的,$id的值是怎么来的?何况implode()函数是将字符串打散为数组,他有2个参数,第一个是标记符(也就是按照什么来打散数组),第二个是要打散的字符串。
其实,你复选框有多个,那就要用for循环依次获取他的值,拼接成一个字符串。
给你一个我做是实例,你按照这个参考一下:
<?php
include_once 'include/confing.php';//引入数据库操作类

$alldel=$date->ps('alldel');//post方式获得隐藏域alldel的值
if($date->is($alldel)){//如果alldel的值为真(依次来判断表单是否提交,因为我这php逻辑代码和html是在同一个页面,判断一下有必要)

$ids='';//初始$ids的值为空

for($i=0;$i<count($_POST['checks']);$i++){//根据页面有多少个复选框进行for循环

$s=$_POST['checks'][$i];//依次取得复选框的值

$ids.=$s.',';//拼接成字符串并在后面加上一个英文半角的逗号

}

$ids=substr($ids,0,strlen($ids)-1);//因为拼接出来的字符串,最后会多出一个逗号,所以用substr函数将他去掉

$del_sql="Delete from websehzhi where tid in ($ids)";//构建sql删除语句

if($date->del_query($del_sql)){//如果sql语句执行成功

$date->msmdurl('成功删除选中记录','?page='.$date->gt('page'));//成功提示并跳转到指定url

}else{//否则

$date->msmdurl('删除失败,您未选中要删除的记录','?page='.$date->gt('page'//失败提示并跳转到指定url));

}

}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>批量删除</title>
</head>

<body>
<form method="post" name="form" id="form">
<input type="checkbox" name="checks[]" value="35" />这是第十条数据<br/>
<input type="checkbox" name="checks[]" value="34" />这是第九条数据<br/>
<input type="checkbox" name="checks[]" value="33" />这是第八条数据<br/>
<input type="checkbox" name="checks[]" value="32" />这是第七条数据<br/>
<input type="checkbox" name="checks[]" value="31" />这是第六条数据<br/>
<input type="checkbox" name="checks[]" value="30" />这是第五条数据<br/>
<input type="checkbox" name="checks[]" value="29" />这是第四条数据<br/>
<input type="checkbox" name="checks[]" value="28" />这是第三条数据<br/>
<input type="checkbox" name="checks[]" value="27" />这是第二条数据<br/>
<input type="checkbox" name="checks[]" value="26" />这是第一条数据<br/>
<input type="hidden" name="alldel" value="1" />
<button type="submit">批量删除</button>
</form>
</body>
</html>

我这里是使用了面对对象,你不要管我的类对象代码,反正原理都差不多!
你也可以使用面对过程,都差不多!
清友灵0cJ
推荐于2016-10-15 · TA获得超过251个赞
知道小有建树答主
回答量:450
采纳率:100%
帮助的人:288万
展开全部
使用表单的POST提交。
<?php
if ($_GET['act']=='delAll')
{
$_POST['Arr']?$id=implode(',',$_POST['Arr']):exit('没有选定需要删除的内容');

if($db->query('DELETE FROM tb_complain WHERE ID in ('.$id.')')){
exit('指定信息删除成功');
}

}
?>
更多追问追答
追问
谢谢,这个运行总是显示  没有选定需要删除的内容
请问 " /> 这个的value需要写嘛?
追答
这里面的value肯定要写啊,不然SQL出错啊
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jerryluo3
2012-05-01
知道答主
回答量:15
采纳率:0%
帮助的人:12.7万
展开全部
$ids = $_POST['Arr'];

//批量删除
if(isset($act) && ($act == "delall")){
if(empty($ids)){//删除ID为空
echo msg("请选择要删除的内容",$jump_url,2000);
}else{
$temp_ids = implode(",",$ids);
$db->query("DELETE FROM tb_complain WHERE ID in ($temp_ids)");
echo msg("删除成功",$jump_url);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wizarot
2012-05-03 · TA获得超过187个赞
知道小有建树答主
回答量:330
采纳率:100%
帮助的人:226万
展开全部
$db->query("DELETE FROM tb_complain WHERE ID in $id)
{echo "数据删除成功!";}
写的有语法错误
$db->query("DELETE FROM tb_complain WHERE ID in $id");
echo "数据删除成功!";}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式