PHP多个$ _GET

时间:2013-08-20 14:12:42

标签: php html database post get

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

?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 个答案:

答案 0 :(得分:5)

与网址

一起使用[]
?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})";
}

答案 1 :(得分:1)

在名称后面使用[]:

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

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

PHP然后将其转换为数组。

$delete_ids = isset($_REQUEST['delete']) ? (array) $_REQUEST['delete'] : array();

答案 2 :(得分:0)

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

?delete=1,2,3,4

代码为:

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

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

答案 3 :(得分:0)

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

e.g

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

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