如何使用$\u GET在PHP中使用相同的名称获取多个参数

如何使用$\u GET在PHP中使用相同的名称获取多个参数,php,mysql,Php,Mysql,我正在使用复选框搜索我创建的mysql数据库。由于所有复选框都使用相同的名称,当我使用$\u GET时,它只获取URL中的最后一个值 例如: 将仅返回项目,并将覆盖纹理 有没有办法存储这两个值,然后使用这些值搜索我的数据库?PHP在这里有点奇怪。使用其标准表单数据解析器,必须将控件名称结尾为[],才能访问多个控件 <input type="checkbox" name="foo[]" value="bar"> <input type="checkbox" name="foo[

我正在使用复选框搜索我创建的mysql数据库。由于所有复选框都使用相同的名称,当我使用$\u GET时,它只获取URL中的最后一个值

例如:

将仅返回项目,并将覆盖纹理


有没有办法存储这两个值,然后使用这些值搜索我的数据库?

PHP在这里有点奇怪。使用其标准表单数据解析器,必须将控件名称结尾为
[]
,才能访问多个控件

<input type="checkbox" name="foo[]" value="bar">
<input type="checkbox" name="foo[]" value="bar">
<input type="checkbox" name="foo[]" value="bar">

如果不想重命名字段,则需要访问原始数据(
$\u SERVER['REQUEST\u URI']
)并自己解析它(我不建议这样做)

在html中将复选框元素命名为“features[]”。这样,它们将作为数组传递。

您需要将该变量的名称设置为HTML数组的变量,因此在表单上

<input name='features[]'/>

我从未尝试过使用$\u GET,但如果您使用$\u POST,您可以执行以下操作:

<input type="checkbox" name="car[]" value="honda" /> Honda
<input type="checkbox" name="car[]" value="ford" /> Ford
<input type="checkbox" name="car[]" value="toyota" /> Toyota
// note the [] in the name
本田 河流浅水处 丰田 //请注意名称中的[] 所以$car=$\u POST['car']是一个数组


你也可以用$试试看

数组是数组是数组。在html表单元素中,当使用[]时,它可以是数组元素,这是它作为数组传递的方式。当然你可以吹毛求疵,数组d与说“一个HTML元素被定义为该名称的数组的一部分,可以选择在方括号内指定索引”是不同的,我不会对此进行否决,但是PHP将根据数据生成一个数组,就URL和HTML而言,它只是一堆同名的东西。服务器上使用的大多数语言都可以让您从任何一组具有相同名称的表单控件中获取数据数组,而不需要PHP要求的特殊命名约定。@MenelaosKotsollaris-我见过的任何系统都没有。@Quentin?…是一个IDE,如果它抱怨HTML,那么它就会被严重破坏(或配置错误)。如果您坚持将键始终设置为
功能
,那么您只能在$\u POST中获得最后一个设置,并且您必须自己处理原始输入。如果您不介意参数名为
feature[]
,那么$\u POST将包含一个名为
feature
的数组,该数组包含所有值。您自己处理原始POST数据将需要读取
php://input
并自行构建请求数据。
<input type="checkbox" name="car[]" value="honda" /> Honda
<input type="checkbox" name="car[]" value="ford" /> Ford
<input type="checkbox" name="car[]" value="toyota" /> Toyota
// note the [] in the name