-1

我正在使用复选框让人们选择他们想要从数据库中删除的内容,他们可能决定一次删除更多内容,如果他们这样做,我的链接如下所示:

?delete=24&delete=11

我的 HTML:

<form>
    <input type='checkbox' name='delete' value=" . $row['server_id'] . ">
</form>

我需要做的是从 SQL 中删除 1 行

DELETE FROM TABLE WHERE id=$server_id & name= $name, $con

如果它只是 1 个变量,我会很容易得到它,但现在我不知道该怎么做,有人可以帮我吗?

4

4 回答 4

5

[]在 URL 上使用

?delete[]=24&delete[]=11

使用表单输入,如:

name='delete[]'

例如:

$ids = $_GET['delete'];

foreach ($ids as $id)
{
   // DELETE FROM TABLE
}

选择

if (isset($_GET['delete']))
{
   if (!is_array($_GET['delete']))
      $ids = array((int)($_GET['delete']));
   else
      $ids = array_map('intval', $_GET['delete']);

   $ids = implode(",", $ids);    
   $sql = "DELETE FROM table WHERE id IN ({$ids})";
}
于 2013-08-20T14:14:08.543 回答
1

在名称后使用 []:

<form>
<input type='checkbox' name='delete[]' value=" . $row['server_id'] . "> 
...
</form>

那将发送 ?delete[]=24&delete[]=11

然后 PHP 会将其转换为数组。

$delete_ids = isset($_REQUEST['delete']) ? (array) $_REQUEST['delete'] : array();
于 2013-08-20T14:17:20.077 回答
0

作为您的问题的解决方案,您可以将表单方法指定为 POST

例如

    <form method="POST">
          <input type='checkbox' name='delete[]' value=" . $row['server_id'] . "> 
    </form>

在服务器端,您可以使用 $_POST 超全局变量访问表单字段的值。

于 2013-08-20T14:31:17.193 回答
0

如果你想让它更花哨但更复杂一点,你也可以这样做:

?delete=1,2,3,4

代码为:

$arr = explode(',', $_GET['delete']);
print_r($arr);

这对于论坛输入来说并不完全好(因为它从未见过),但如果用户需要查看或更改 url,它会更容易阅读。

于 2013-08-20T14:17:22.413 回答