请教为什么我一次性选择多条信息进行删除的时候,只能删除其中那条id最小的那条,其他被选中的没有删除掉。管理页代码:
<form id="form1" name="form1" method="post" action="delete.php">
<?php
$mid=$_REQUEST['mid'];
$uname=$_REQUEST['uname'];
$userid=$_REQUEST['userid'];
$sql = "select * from `dede_member` order by mid desc";
require('conn.php');
while($row = mysql_fetch_array($result))
{
?>
<P><input type="checkbox" name="checkbox[]" value="<?php echo $row['mid'];?>" /><?php echo $row['mid'];?> <font color="#FF0000">‖</font> <?php echo $row['uname'];?> <font color="#FF0000"><?php echo $row['userid'];?> </font></P>
<?php
}
?>
<P><input type="checkbox" name="checkbox[]" value="<?php echo $row['mid'];?>" />全选</P>
<P><input type="submit" name="Submit" value="删除所选" /></P>
</form>
删除结果页代码:
<?php
$mid=$_REQUEST['mid'];
foreach($_REQUEST['checkbox'] as $v){
$sql="delete from `dede_member` where `mid`='{$v}'";
}
require('conn.php');
if($result){
echo "<script>alert('删除成功');location.href='delete_member.php';</script>";
}
?>

解决方案 »

  1.   

    为什么要用$_REQUEST 呢?你写的代码都不完整。
    怎么执行的,然道 直接在 delete.php 里面写一句SQL。
    然后conn.php里面执行吗?如果是这样你就要在foreach 里面引入 这个conn.php文件。
      

  2.   

    foreach($_REQUEST['checkbox'] as $v){
    $sql="delete from `dede_member` where `mid`='{$v}'";
    }因为这个循环,实际上只有一次赋值是有效的而你排序的时候order by mid desc所以,最后赋值只是给了mid最小的。
      

  3.   

    foreach($_REQUEST['checkbox'] as $v){
    $sql="delete from `dede_member` where `mid`='{$v}'";
    }
    改为
    $sql="delete from `dede_member` where `mid` in (". join(',', $_REQUEST['checkbox']) . ")";
      

  4.   

    <P><input type="checkbox" name="checkbox[]" value="<?php echo $row['mid'];?>" />全选</P>
    这个全选实现了么??
      

  5.   

    用 foreach 来一条一条删
    又或者 sql in 来删除。
      

  6.   

    ++++++++++===============================<P><input type="checkbox" name="checkbox[]" value="<?php echo $row['mid'];?>" />全选</P>你这个也叫全选????如果你只点了这个,而其他并没有成选种状态,那当然只删除一条数据了,你又是倒序输出,当然就删除的最小的数据了。

    <P><input type="checkbox" onclick="checkall();"/>全选</P>//这里要把实现全选的checkall的JS函数给实现了