Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法使用$\u get请求从多个select中获取值_Php_Mysql_Get_Multiple Select - Fatal编程技术网

Php 无法使用$\u get请求从多个select中获取值

Php 无法使用$\u get请求从多个select中获取值,php,mysql,get,multiple-select,Php,Mysql,Get,Multiple Select,我想要一些帮助 我将通过一个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<

我想要一些帮助

我将通过一个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>
在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子句”中的未知列“Array”


如何解决此问题?

请尝试以下方法,可能很简单

 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']);
        $_GET['location'] = array('first'=>'loc1','second'=>'loc2','third'=>'loc3');
        $loc = implode('","', $_GET['location']);
        $loc ='"'.$loc.'"';

        $sql='SELECT  * FROM locations WHERE AreaID IN ('.$loc.')';
        echo $sql;
    }
结果查询


更改名称='location'并重试。我认为loc数组中的每个项目都需要用引号括起来:$loc=内爆“\”,\,$\u GET['location'];然后$sql=从AreaID所在的位置选择*$loc.”;但如果任何项目中有引号,您也需要将引号转义。@Rubik:不起作用。奇怪的是,我在我的url上得到了所选的值,而我用来转储$_GET['location']数组的骰子没有显示任何内容。@Ayyanar G你想在哪里更改名称?在my?中,die命令中的var_dump将使其看起来像是空的。此函数是一个echo命令,不提供字符串。因此,不会显示任何内容,因为模具会阻止显示。在模具之前进行var_转储,您将看到实际值。请使用该结果信息更新问题
 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']);
        $_GET['location'] = array('first'=>'loc1','second'=>'loc2','third'=>'loc3');
        $loc = implode('","', $_GET['location']);
        $loc ='"'.$loc.'"';

        $sql='SELECT  * FROM locations WHERE AreaID IN ('.$loc.')';
        echo $sql;
    }
SELECT * FROM locations WHERE AreaID IN ("loc1","loc2","loc3")