【发布时间】:2015-03-18 10:24:52
【问题描述】:
我需要一些帮助。
我使用 GET 请求从多选字段将所选值发送到我的进程页面 (archive.php)
<form id="form1" class="four columns" action="archive.php" method="get" name="form1">
<select id="select2" multiple="multiple" name="location[]">
<option value="103001000">value1</option>
<option value="103002000">value2</option>
<option value="103003000">value3</option>
<option value="103004000">value4</option>
</select>
我像这样在我的网址上获得选定的位置
location[]=103002000&location[]=103003000
在archive.php中我试图从数据库中获取数据
if (( isset($_GET['location']) && !empty($_GET['location']) )) {
die(var_dump($_GET['location'])); // the var_dump doesn't return an array at all
$loc = implode(', ', $_GET['location']);
$sql="SELECT * FROM locations WHERE AreaID IN (". $loc.")";
}
但我收到以下错误:错误:“where 子句”中的未知列“数组”。
我该如何解决这个问题?
【问题讨论】:
-
更改名称 = 'location' 并尝试。
-
我认为 loc 数组中的每个项目都需要用引号括起来:
$loc = implode('\', \'', $_GET['location']);然后$sql="SELECT * FROM locations WHERE AreaID IN ('". $loc."')";但如果有任何项目,你也需要转义引号。 -
@Rubik:不起作用。奇怪的是,我在我的 url 上获得了选定的值,而我用来转储 $_GET['location'] 数组的 die() 没有显示任何内容..
-
@Ayyanar G 你的意思是在哪里更改名称?在我的
-
die 命令中的
var_dump会让它看起来像是空的。此函数是一个回显命令,不提供字符串。因此不会显示任何内容,因为die阻止了这种情况。在die之前执行var_dump,您将看到实际值。请使用该结果信息更新问题
标签: php mysql get multiple-select