php - 具有用户选择的 OPTION 值的 MYSQL SELECT

标签 php mysql html-select

我正在尝试根据用户在我的 php 文件 list.php 中选择的值过滤出 MYSQL 表

我的表 users 有字段 stdYr,其中元素的值为 S00, S01, ... S40

在 html 正文中,我有这段代码:

<form method="post" role="form" action="list.php">
    <div>
        <select multiple>
            <option value="all">Select</option>
            <option value="S00">74</option>
            <option value="S01">75</option>
            <option value="S02">76</option>
            ...
            <option value="S40">114/option>
        </select>
        <button type="submit"></button>

    </div>
</form>

然后,我想选择具有选定 stdYr 值的那些。 我想出的方法是通过 $_POST 传递 option 的值:

if(isset($_POST['S00']) || isset($_POST['S11']) || ...
    ... || isset($_POST['S40'])) {
    /*some code to get only those set values*/
    $query="SELECT * FROM users WHERE stdYR = '/*some stuff*/'";
}

但是对于不同的可能值选择,我不知道该怎么做... 即使有了解决方案,我也认为这种方法非常重复和愚蠢。 我该如何处理这些事情?

非常感谢您的帮助!谢谢:D

最佳答案

您的表单不正确。您的 select 必须有一个 name 属性才能提交给服务器。

<select name="options[]" multiple>
        ^^^^^^^^^^^^^^^
   <option ...>
   ...
</select>

注意名称字段上的 []。这将告诉 PHP 接受多个值,使 $_POST['options'] 本身成为一个数组。然后这是一个简单的问题:

foreach($_POST['options'] as $option) {
     insert_into_db($option);
}

关于php - 具有用户选择的 OPTION 值的 MYSQL SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27508269/

相关文章:

php - Symfony2 - 如何在 Controller 中验证电子邮件地址

php - php 中的数据库查询失败

php - 如何以json格式php从数据库中获取所有项目?

php - 使用 SELECT MYSQL 查询在数据库中搜索逗号分隔值

Mysql 5.6 timestampdiff 返回结果问题

javascript - 如果我通过 Javascript 更改 <option> 元素上的属性 "selected"会发生什么情况?

javascript - 选择第一个选项时自动更改第二个下拉列表

php - 无法执行查询: BIGINT UNSIGNED value is out of range

javascript - 如何在没有 jQuery 的情况下检查选择字段是否具有特定选项值

php - 无法结束 PHP session