php如何结合逗号分隔$ _GET变量同名多次

时间:2016-09-15 02:32:58

标签: php mysql get

我正在提交表单并获取http://localhost/web/test.php?cuisine=1&cuisine=2&cuisine=3之类的网址。

我想得到echo $_GET['cuisine'];的结果,输出应为"1,2,3" / $rt = "1,2,3";我想在查询(select * from table where id in ($rt) )

中使用它

我的表格:               没有烹饪限制     

$result = $db->query("
SELECT
    *
FROM
    cuisines
WHERE
    status=1
order by id
");
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<option value="<?php echo $rs["id"]; ?>"><?php echo $rs["ename"]; ?></option>
<?php } ?>
</select>

</form>

我已经尝试了以下但是它只采用了最后一个ID#3,当我只选择一个不是多个时它工作正常:

$temp = $_GET['cuisine'];
$thelist    =   implode(",",$temp);

我试过http://localhost/web/test.php?id[]=1&id[]=2&id[]=3&amp;打印结果它给了我Array ( [0] => 1 [1] => 2 ),但如何在WHERE id IN (....);中使用它我试过不能。

1 个答案:

答案 0 :(得分:0)

正如chris85和Craig的评论所示。将选择字段的名称更改为cuisine[]

<?php
var_dump($_GET);
?>
<form action="">
    <select name="cuisine[]" multiple>
        <option value="">None</option>
        <?php $cuisines = ['indian', 'english', 'thai', 'italian']; ?>
        <?php foreach($cuisines as $key => $cuisine) { ?>
            <option value="<?php echo $key; ?>"><?php echo $cuisine; ?></option>
        <?php } ?>
    </select>
    <input type="submit">
</form>

如果我选择'english'和'thai',输出会显示:

array (size=1)
  'cuisine' => 
    array (size=2)
      0 => string '1' (length=1)
      1 => string '2' (length=1)