Php 多重选择不起作用

Php 多重选择不起作用,php,multiple-select,Php,Multiple Select,编辑:我编辑了我的问题,以使它更清楚,我希望 我构建了一个带有多个搜索框的表单页面,通过$\u GET方法从表中的数据库表中搜索和显示值。目前效果不错 我需要的是:我希望一些搜索框允许多个选择,但我只得到一个选择的结果 以下是查询: 这是选择选项: 我在等待你宝贵的想法。要使用多个选项,你需要像这样设置HTML,听起来就像你说的那样: <select name="foo[]" multiple="multiple"> <!-- options go here --&g

编辑:我编辑了我的问题,以使它更清楚,我希望

我构建了一个带有多个搜索框的表单页面,通过$\u GET方法从表中的数据库表中搜索和显示值。目前效果不错

我需要的是:我希望一些搜索框允许多个选择,但我只得到一个选择的结果

以下是查询:

这是选择选项:


我在等待你宝贵的想法。

要使用多个选项,你需要像这样设置HTML,听起来就像你说的那样:

<select name="foo[]" multiple="multiple"> 
    <!-- options go here -->
</select>
然后在php中,您可以将其作为如下数组访问:

<?php
    // This will print out all of the selected values.
    print_r($_GET['foo']);
要在表格中回显这些结果,请执行以下操作:

<table>
    <tr><th>Option</th></tr>
    <?php foreach ($_GET['foo'] as $option) : ?>
        <tr><td><?php echo htmlspecialchars($option) ?></td></tr>
    <?php endforeach; ?>
</table>
name=satici[]multiple=multiple是正确的HTML

您希望在php中执行以下操作:

$arr_search = array();
foreach((array)@$_POST['satici'] as $h)
    $arr_search[] = $h; // Escape this value (without "'")

$str_search = implode('|', $arr_search);
在查询内部,用WHERE satis_satici REGEXP“{$str_search}”替换WHERE satis_satici(如%s)

请注意,类列“search”通常等于类列REGEXP“search”,类列“search”或类列“search”通常等于我的示例提供的类列REGEXP“search | search2”


除此之外,我建议您尽可能多地将变量、列名等译成英语。它变得更易于维护,您只需要翻译给最终用户。

您可以发布此文件的HTML吗?您听说过$GET或$post吗。我甚至不能使用它。我不小心一直在按回车键。我把你的代码添加到我的页面顶部。这个表是空的,但在顶部它说数组[0]=>HASAN MIZRAK[1]=>SERDAR KAPLAN是的,这意味着如果你想在表中回显结果,HASAN MIZRAK和SERDAR KAPLAN是两个选择的选项,请参阅我的更新帖子。是的,选择的选项列在表中,但这不是我需要的。我需要在查询中使用它们,并将结果与这两位销售人员一起过滤。Robin,感谢您的快速回复和建议。我会记住的。我尝试了你的代码,但它给了我一个错误:从regexp得到了错误“empty subexpression”。我将代码放在sql查询之前,并用您的代码更改了查询。print\r$\u POST['satici']为您提供了什么?在您的代码之前还是之后?我昨天用克里斯隆的解决方案试过了。这不是我需要的东西,但它给了我在查询后选择的两个名字。但是现在它又出现了同样的错误,从regexp中得到了错误“empty subexpression”。我建议您对此进行故障排除,看看$str_search提供了什么。在这种情况下,很难对细节有所帮助,尤其是当我发现你的代码很难阅读时。罗宾,尽管我不认为我可以通过谷歌搜索找到解决方案,因为我已经绝望地做了三天了。无论如何,谢谢你。至少你试过了。
<table>
    <tr><th>Option</th></tr>
    <?php foreach ($_GET['foo'] as $option) : ?>
        <tr><td><?php echo htmlspecialchars($option) ?></td></tr>
    <?php endforeach; ?>
</table>
$arr_search = array();
foreach((array)@$_POST['satici'] as $h)
    $arr_search[] = $h; // Escape this value (without "'")

$str_search = implode('|', $arr_search);