如何使用提交按钮将复选框表单中的数据库结果正确回显到表中?

时间:2013-04-25 09:03:15

标签: php html mysql database

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

P.S。我听说过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);
    }

1 个答案:

答案 0 :(得分:1)

您的代码中有两个错误

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

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

所以解决方案就是试试这个

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

    // put your remaining code here
}