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 指的就是本页 展开
<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 指的就是本页 展开
展开全部
问题很大,
首先,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>
我这里是使用了面对对象,你不要管我的类对象代码,反正原理都差不多!
你也可以使用面对过程,都差不多!
首先,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>
我这里是使用了面对对象,你不要管我的类对象代码,反正原理都差不多!
你也可以使用面对过程,都差不多!
展开全部
使用表单的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('指定信息删除成功');
}
}
?>
<?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出错啊
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$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);
}
}
//批量删除
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);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$db->query("DELETE FROM tb_complain WHERE ID in $id)
{echo "数据删除成功!";}
写的有语法错误
$db->query("DELETE FROM tb_complain WHERE ID in $id");
echo "数据删除成功!";}
{echo "数据删除成功!";}
写的有语法错误
$db->query("DELETE FROM tb_complain WHERE ID in $id");
echo "数据删除成功!";}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询