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

  大家可以参考下面的这篇文章http://www.glzy8.com/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>