PHP 批量删除数据的方法分析


  本文标签:PHP,批量删除数据

大家可以参考下面的这篇文章http://www.jb51.net/article/6488.htm
SQL:$SQL="delete from `doing` where id in (1,2,3,4)";
  数据用逗号隔开 。
  表单:
复制代码 代码如下:

  <form action="?action=doing" method="post">
  <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="1"/>
  <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="2"/>
  <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="3"/>
  <input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="4"/>
  <input type="submit"/>
  </form>

  好$ID_Dele=$_POST[ID_Dele]将会是一个数组,虽然说PHP是弱类型的,但这里可没ASP弱 。
  ASP可以直接:
  SQL="delete from [doing] where id in ("&ID_Dele&")"进行删除 。但PHP不能把$ID_Dele直接放进去 。因为$ID_Dele可不是1,2,3,4哦,因为$ID_Dele是一个数组,具有键和值 。
  好,PHP中也不难,刚好有个函数:implode(),对了 。同split()explode()功能刚好相反的一个函数,后两者是用某字符(比如逗号)分割的,而前者则可以拼接为字符串 。
  因此:
复制代码 代码如下:

  $ID_Dele= implode(",",$_POST[ID_Dele]);
  $SQL="delete from `doing` where id in ($ID_Dele)";


脚本之家提供测试代码:
复制代码 代码如下:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<?php
if ($_POST["action"]="doing"){
$del_id=$_POST["ID_Dele"];
$ID_Dele= implode(",",$_POST[ID_Dele]);
echo "合并后:".$ID_Dele."<br />合并前:";
if($del_id!=""){
$del_num=count($del_id);
for($i=0;$i<$del_num;$i++){
echo $del_id[$i];
}
}
}else{
echo "请提交";
}

?>
<form action="?action=doing" method="post">
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="第1个"/>第1个
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="第2个"/>第2个
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="第3个"/>第3个
<input name="ID_Dele[]" type="checkbox" id="ID_Dele[]" value="第4个"/>第4个
<input type="submit"/>
</form>