php批量删除

  之前我们通过php对数据库的操作,实现了对数据的简单的增删改查。今天我们继续通过php对数据库的操作,来进一步完善相关的设计,今天我们要实现批量删除功能。

  之前我们已经做出了查询页面,那么现在要实现批量删除功能,首先要给每个code前面加上复选框和相关操作按钮。我们早前已经通过遍历的方式经数据库里的内容展示出来,因此,对于复选框的设置,我们仅仅需要在此前代码的基础上,稍加设置即可轻松给每个code加上复选框并添加上操作按钮(详情见代码)。

<form action="piliangshanchu.php" method="post">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>性别</td>
<td>民族</td>
<td>生日</td>
<td>操作</td>
</tr>
<?php
//造对象
$db = new MySQLi("localhost","root","123","mydb");
//判断是否出错
!mysqli_connect_error() or die("连接失败!");
//写SQL语句
$sql = "select * from Info";
//执行SQL语句
$result = $db->query($sql);

//读取数据
$attr = $result->fetch_all();

//遍历数组,显示
foreach($attr as $v)
{

$sex = $v[2]?"男":"女";

$sql = "select Name from Nation where Code = '{$v[3]}'";
$r = $db->query($sql);
$a = $r->fetch_row();

echo "
<tr>
<td>
<input class='ck' name='ck[]' type='checkbox' value='{$v[0]}' /> //在此处添加一个name,在批量删除时,让他一数组的形式进行提交,这样就可以避免出错
{$v[0]}</td>
<td>{$v[1]}</td>
<td>{$sex}</td>
<td>{$a[0]}</td>
<td>{$v[4]}</td>
<td><a href='delete.php?code={$v[0]}'>删除</a><a href='update.php?code={$v[0]}'>修改</a></td>
</tr>
";
}
?>
<tr>
<td><input type="checkbox" onclick="CheckAll(this)" />全选</td>
<td><input type="submit" value="批量删除" /></td>
</tr>
</table>
<a href="add.php">添加数据</a>
</form>
</body>
<script type="text/javascript">
function CheckAll(a)
{

//根据class名来取到所有复选框的值
var ck = document.getElementsByClassName("ck");

//利用for循环来取得复选框的选中状态
for(var i=0;i<ck.length;i++)
{
  if(a.checked)
  {
    ck[i].setAttribute("checked","checked");//此处的ck[i]是取到每个checkbox的值
  }
  else
  {
    ck[i].removeAttribute("checked");
  }
}

}
</script>

在完成复选框的设置之后,就是php代码的后台执行,因此新建一个代码页面,专门用于执行php代码

<?php
$ck = $_POST["ck"];//数组名为ck且提交方式为post,因此在此使用post方法
include("DBDA.class.php");
$db = new DBDA();

foreach($ck as $v)//ck是一个一维数组,所以每一个v代表一个主键值
{
$sql = "delete from Info where Code='{$v}'";
$db->Query($sql,0);//执行mysql语句
}

header("location:main.php");

posted @ 2016-06-23 20:33  江南渔雾  阅读(256)  评论(0编辑  收藏  举报