在 php 中使用下拉列表过滤数据

问题描述 投票:0回答:1

我尝试通过 mySQL 的下拉选项显示一些数据

当用户选择选项美国并点击提交时,页面将转到下一页并仅显示美国的数据

这是我的 store.php 代码

<form method=POST action="filter.php" name="filter">

    <select name="fbike" id="fbike">
        <option value="" disabled selected>category</option>
        <optgroup label="bike">
            <option value="city_bike">city</option>
            <option value="mountain_bike">mountain</option>
            <option value="bmx_bike">bmx</option>
        </optgroup>
        <option value="clothes">clothes</option>
        <option value="accessory">accessory</option>
         </select>
         <input name="submit" type="submit" value="show" />
</form>

这是我的第二页 filter.php

$link=mysqli_connect("localhost","root","","rider_shop");
if(mysqli_connect_errno())
   exit("there is an error".musqli_connect_error());



if(isset($_POST['submit'])){
    $selected_value=$_POST['fbike'];
    if($selected_value=='city_bike'){
        $drop="SELECT * FROM rider_products WHERE fbike='city'";
    }
    else if($selected_value=='mountain_bike'){
        $drop="SELECT * FROM rider_products WHERE fbike='mountain'";
    }
    else{
        exit("it does not exist");
    }
    $result=mysqli_query($link,$drop);
        while($row=mysqli_fetch_array($result)){
            echo$row['fbike'].'-'.$satr['price'].'<br/>';
        }
}

我尝试了上面的代码,但是我得到了 2 个错误

未定义索引:C:\wamp64\www 中的 fbike 第 14 行的 ider ilter.php

警告:mysqli_fetch_array() 期望参数 1 为 mysqli_result,C:\wamp64\www 中给出的布尔值 第 36 行的 ider ilter.php

第14行是

$selected_value=$_POST['fbike'];

第 36 行是另一个过滤器,它可以自己工作,但是当我添加下拉过滤器时,它不再起作用,我有那个错误,他的代码是:

$min_price=$_POST['min_price'];
$max_price=$_POST['max_price'];
$query="SELECT * FROM rider_products WHERE price BETWEEN $min_price AND $max_price";
$result=mysqli_query($link,$query);
while($row=mysqli_fetch_array($result)){
    echo$row['fbrand'].'-'.$row['price'].'<br/>';
}
php mysqli
1个回答
0
投票

问题是你得到一个空结果,因为没有条目与指定的 fbike 匹配,它从 mysqli_query 返回 $result 作为 FALSE ...你必须检查你得到行。

© www.soinside.com 2019 - 2024. All rights reserved.