1

大家好,我是 php、mysql 和 html 的新手,对于我正在从事的项目,我有一个简单的数据库,其中包含 id、产品、价格和条件。在我的 html 表单上,我有四个复选框,价格范围为 0-25、25-50、50-75 和 75-100。这是我正在尝试做的一个示例:如果用户选择了带有 0-25 的复选框,它应该在表格中回显所有价格为 0-25 的产品的 ID、产品、价格和条件。我有复选框值保存在数组中,但此时我完全迷失了。如何在选中的复选框的数据库中输出值。

PS我听说过PDO,但是这个项目我们必须使用mysql。这是我的html:

<form action="pricefilter.php" method="post">
<br><b>Filter By Price:</b><br><br> 
<input type="checkbox" name="priceFilter[]" id="Price" value="025"/>&nbsp;$0-$25<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="2550"/>&nbsp;$25-$50<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="5075"/>&nbsp;$50-$75<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="75100"/>&nbsp;$75-$100<br><br>
<input type="checkbox" name="priceFilter[]" id="Price" value="100"/>&nbsp;$75-$100<br><br>
<input type="submit" name="submit" value="Submit" />
</form>

这是我的php:

<?php
mysql_connect ("localhost", "root","root")  or die (mysql_error());
mysql_select_db ("XUSWAPSAMPLE");

$priceFilter = $_GET['priceFilter'];

 $filteredResponse = array ();
foreach($priceFilter as $range)
{
if($range == 025)
    {
        $query = "select * from Books where Price <= 25";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);

    }

    if($range == 2550)
    {
        $query = "select * from Books where Price >= 25 AND Price <=50";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }
     if($range == 5075)
    {
        $query = "select * from Books where Price >= 50 AND Price <=75";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }

     if($range == 75100)
    {
        $query = "select * from Books where Price >= 75 AND Price <=100";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }
     if($range == 100)
    {
        $query = "select * from Books where Price >= 100";
        $sql = mysql_query($query);

        array_push($filteredResponse, $sql);
    }
4

1 回答 1

1

您的代码中有两处错误

1)您正在使用 post 方法提交表单,但尝试使用 $_GET 获取价值,因此您应该使用 $_POST

2)您应该使用 php 的 isset 属性来检查值是否存在。

所以解决方案是试试这个

if (isset($_POST['priceFilter']) && ($_POST['priceFilter']!="")) {
    $priceFilter = $_POST['priceFilter'];

    // put your remaining code here
}
于 2013-04-25T09:06:47.310 回答