【问题标题】:when I am selecting multiple checkbox for deletion...only last one checkbox is deleted ! means it can delete 1 data from a database当我选择多个复选框进行删除时...只有最后一个复选框被删除!意味着它可以从数据库中删除 1 个数据
【发布时间】:2012-04-12 17:23:44
【问题描述】:

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

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

网址喜欢 -> http://localhost/demo/delete.php?check=10&check=13&check=14&submit=Delete

当我选择一个多于 1 个复选框的复选框时,我需要从数据库中删除复选框数据!任何人帮助我克服这个问题谢谢

  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";
        }
    
    }
    ?>
    

【问题讨论】:

  • 在这个网址http://localhost/demo/delete.php?check=10&amp;check=13&amp;check=14&amp;submit=Delete 你的$_GET['check'] 永远是14
  • 给我一些建议..我该怎么做
  • 将 name="check" 更改为 name="check[]"。请参阅@citizenen 答案。

标签: php mysql


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    name="check" 更改为name="check[]"

    在此处查看更多信息:http://www.kavoir.com/2009/01/php-checkbox-array-in-form-handling-multiple-checkbox-values-in-an-array.html

    【讨论】:

      【解决方案3】:
      [...]
      while ($row = mysql_fetch_array($result))
      {
              ?>
              <td>
                  <input type="checkbox" name="check[]" value="<?php echo $row['id']?>"><?php echo $row['data']; ?>
              </td>
          <?php
      }
      ?>
      [...]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-18
        • 2021-07-11
        • 2015-11-13
        • 2012-05-21
        • 2012-01-21
        • 1970-01-01
        相关资源
        最近更新 更多