PHP MySQL数据库多重过滤

时间:2015-02-25 18:23:54

标签: php html mysql

所以我有一个包含大量属性的表,并将它们显示在网页上。由于我们的产品范围很广,我开发了一种过滤系统。但是,在使用时,您只能选择一个标签,但我们希望以某种方式设计它,以便您可以选择一个标签,然后选择另一个标签。我目前的代码如下。

<h3>Advanced Search:</h3>

    <table>
<tr>
    <td colspan="2" style="vertical-align: top; width:50%; !important;">
          <h3>Location</h3>
          <div>
            <a href="webpropertyloc.php?loc=Alsancak" data-ajax="false" class="ui-btn">Alsancak</a>
            <a href="webpropertyloc.php?loc=Karsiyaka" data-ajax="false" class="ui-btn">Karsiyaka</a>
            <a href="webpropertyloc.php?loc=Lapta" data-ajax="false" class="ui-btn">Lapta</a>
            <a href="webpropertyloc.php?loc=Kayalar" data-ajax="false" class="ui-btn">Kayalar</a>
            <a href="webpropertyloc.php?loc=Sadrazamkoy" data-ajax="false" class="ui-btn">Sadrazamkoy</a>
            <a href="webpropertyloc.php?loc=Camlibel" data-ajax="false" class="ui-btn">Cambeli</a>
            <a href="webpropertyloc.php?loc=Baspinar" data-ajax="false" class="ui-btn">Baspinar</a>
            <!--<a href="property.php?loc=" data-ajax="false" class="ui-btn"></a>
            <a href="property.php?loc=" data-ajax="false" class="ui-btn"></a>
            <a href="property.php?loc=" data-ajax="false" class="ui-btn"></a>-->
          </div>
          </td>


    <td style="vertical-align: top; width:25%;">      
          <h3>Number of Bedrooms</h3>
          <div>
            <a href="webpropertybed.php?bed=1" data-ajax="false" class="ui-btn">1</a>
            <a href="webpropertybed.php?bed=2" data-ajax="false" class="ui-btn">2</a>
            <a href="webpropertybed.php?bed=3" data-ajax="false" class="ui-btn">3</a>
            <a href="webpropertybed.php?bed=4" data-ajax="false" class="ui-btn">4</a>
          </div>
    </td>

然后继续使用另外几个选项,然后页面上的代码如下:

    <h1>Properties</h1>

    <?php
    $loc = $_GET["loc"];
    $con = mysql_connect("localhost","Username","Password");
    mysql_selectdb("db",$con);
    $sql = "SELECT * FROM Properties WHERE Location='$loc' ORDER BY  `Properties`.`Price` ASC";
    $mydata = mysql_query($sql,$con);

    echo "<h4>Location:" . $loc . "</h4><br>";

    while($record = mysql_fetch_array($mydata)){
        echo  "<div id=\"property\">" . "<img src=\"images/" . $record['MainPic'] . "\" id=\"propimg\" align=\"left\">" . "<div id=\"text\" style=\"text-align: center; margin-right:20px;\"><h2>" . $record['Title'] . "</h2>" . $record['Ref'] . "<br/>" . "&pound;" . $record['Price'] . "<br/>" . $record['Location'] . "<br/>" . "<a href=\"property_view.php?id=" . $record['ID'] . "\" data-ajax=\"false\" class=\"ui-btn\" id=\"button\">Details</a></div>" . "<img src=\"images/bottom-line.png\" id=\"bottomline\"></div>" . "</div>" ;

    }

    mysql_close($con);
    ?>

任何帮助都会受到极大的欢迎。提前谢谢!

1 个答案:

答案 0 :(得分:0)

我建议使用相同的页面显示结果,过滤器是否适用于位置或卧室数量。您始终可以在SQL中使用WHERE (1 = 1),以便添加AND (Location='$loc')AND (Beds='$bed'),但最好使用参数。

完成设置后,您可以修改链接。假设您的目标网页是webproperty.php。将该网址存储在变量$urlDest

当您按位置生成要过滤的链接时,请将$_GET中不loc的所有变量添加到$urlDest的末尾,获取类似webproperty.php?bed=2的内容。在遍历您的位置时,将loc变量附加到$urlDest,例如"<a href=\"$urlDest&amp;loc=$loc\">"

同样,当您生成按卧室计数过滤的链接时,请将$_GET中不bed的所有变量添加到$urlDest的末尾,获取类似{{1}的内容}}。当您遍历卧室计数时,将webproperty.php?loc=Alsancak变量附加到bed,例如$urlDest