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

时间:2017-11-07 05:55:13

标签: 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。我得到的结果如果我给出单一价值。如果我给多个,我没有得到结果。请帮忙。

1 个答案:

答案 0 :(得分:0)

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

但我建议这个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>