当我选择多个复选框进行删除时...只删除最后一个复选框!意味着它可以从数据库中删除1个数据

时间:2012-04-12 17:23:44

标签: php mysql

下面的代码!给我复选框和删除按钮,在输入标签中所有复选框都有相同的名称(勾选)!!可以从具有id的数据库中检索复选框。

问题是::当我选择多个复选框进行删除时...只删除最后一个复选框!意味着它可以从数据库中删除1个数据。

url like - > http://localhost/demo/delete.php?check=10&check=13&check=14&submit=Delete

我需要选中一个复选框以上的复选框,复选框数据从数据库中删除!任何人都帮助我克服这个问题,谢谢

  1. 的index.php

    <?php
    $sql = mysql_connect('localhost', 'root', '');
    mysql_select_db('database_section', $sql);
    ?>
    <form name="checkbox" method="get" action="delete.php">
        <table>
            <tr>
                <?php
                $sql = "select * from data";
                $result = mysql_query($sql) or die(mysql_error());
                while ($row = mysql_fetch_array($result))
                {
                    ?>
                    <td><input type="checkbox" name="check" value="<?php echo $row['id']?>"><?php echo      $row['data'];?>
                    </td>
                    <?php
                }
                ?>
            <tr>
                <td><input type="submit" name="submit" value="Delete"></td>
            </tr>
        </table>
    </form>
    
  2. 现在,在下面的delete.php..code中......

    <?php
    $sql = mysql_connect('localhost', 'root', '');
    mysql_select_db('database_section', $sql);
    if ($_REQUEST['submit']) {
        $abc = $_GET['check'];
        $sql = "Delete from data where id=$abc";
        $result = mysql_query($sql) or die(mysql_error());
        if (isset($result)) {
            echo "data deleted";
        }
        else
        {
            echo "not possible";
        }
    
    }
    ?>
    

3 个答案:

答案 0 :(得分:2)

使用复选框作为数组持有者。将其命名为check []以保存所有选定的值。在帖子上,您将获得所选的数组列表。

现在你的$ abc将是一个数组,在delete.php中使用foreach来获取已检查的id。

答案 1 :(得分:1)

答案 2 :(得分:0)

[...]
while ($row = mysql_fetch_array($result))
{
        ?>
        <td>
            <input type="checkbox" name="check[]" value="<?php echo $row['id']?>"><?php echo $row['data']; ?>
        </td>
    <?php
}
?>
[...]