php - PHP 和 MySQL 中使用下拉列表的多个搜索值

标签 php mysql

HTML 表单:

<form>
    <select name="country[]" id="country" multiple>
        <option value="any">any</option>
        <option value="India">India</option>
        <option value="Canada">Canada</option>
        <option value="UK">UK</option>
        <option value="USA">USA</option>
        <option value="Australia">Australia</option>
    </select>
</form>

PHP 代码

<?php
$country = $_REQUEST['country'];
if($country=="")
    $countrysql = "";
else
{
    if($country == "Any") $countrysql = "";
    else
    {
        $country = str_replace(",","','",$country);
        $countrysql = " and Country in ('$country')";
    }
}
$queryString = "SELECT * FROM register where $countrysql";
?>

我已经用 PHP 创建了一个表单,我想搜索多个选项。我已经创建了“Register”表和“Country”列。如果我给出单一值,我就会得到结果。如果我给出多个,我就不会得到结果。请帮忙。

最佳答案

您在 if($country == "Any") 中进行评估单词Any 不等于选项 <option value="any">any</option> 中的any

但我建议使用这个 php 代码:

<?php
    $country="";
    $countryError="";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (empty($_POST["country"])){
       $countryError = "Country is required"; 
    }else{
     $country = $_POST["country"];   
    }

    if($country == "Any") {
       $queryString = "SELECT * FROM register";  
    }else{  
         $queryString = "SELECT * FROM register where Country in ('$country')"; 

    }
// Print the SQL string:
    echo $queryString;
}

?>

html 标签:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <select name="country" id="country" multiple>
        <option value="Any">any</option>
        <option value="India">India</option>
        <option value="Canada">Canada</option>
        <option value="UK">UK</option>
        <option value="USA">USA</option>
        <option value="Australia">Australia</option>

    </select>
     <input type="submit" name="submit" value="Submit">  
</form>
 <span class="error"><?php echo $countryError;?></span>

关于php - PHP 和 MySQL 中使用下拉列表的多个搜索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47150882/

相关文章:

php - mysql Select Query 2 where选项

php - 将具有 unix 时间戳值的 PHP 字符串转换为 MySQL 时间戳值

php - 有没有办法在 php 开始上传之前运行一些脚本?

mysql - 开始交易或开始工作

mysql - 如何连接三个半相关表

javascript - 谷歌地图多标记不工作

MySQL 动态键/对转换为单个记录集

Mysql查询日期之间的日期

mysql select with in子句不使用索引

php - 从另一台机器访问 wordpress 网站