簡體   English   中英

如何使用帶有PHP和MySQL的簡單HTML表單創建PHP高級搜索?

[英]How can I create a PHP Advanced Search using a simple HTML form with PHP and MySQL?

我希望我的用戶能夠從搜索表單中搜索多個條件。

這是HTML:

<form id="form_search" action="search.php" method="post">
    <input class="search" type="text" name="search" placeholder="Search for a property for sell or rent" autocomplete="off">
    <select name="min_val" class="control_option option_select min_val">
        <option selected>Property Type</option>
        <option>Homes for Sale</option>
        <option>Homes to Let</option>
        <option>Student Accomodation</option>
        <option>Commercial</option>
        <option>Land and Sites</option>
        <option>Auctions</option>
        <option>Agricultural</option>
    </select>
    <select name="max_val" class="control_option option_select max_val">
        <option selected>Max Price</option>
        <option>&pound;25,000</option>
        <option>&pound;50,000</option>
        <option>&pound;100,000</option>
        <option>&pound;150,000</option>
        <option>&pound;200,000</option>
        <option>&pound;250,000</option>
        <option>&pound;300,000</option>
        <option>&pound;350,000</option>
        <option>&pound;400,000</option>
        <option>&pound;450,000</option>
        <option>&pound;500,000</option>
        <option>&pound;600,000+</option>
    </select>
    <select name="beds" class="control_option no_bed">
        <option selected>Bedrooms</option>
        <option>1 Bedroom</option>
        <option>2 Bedrooms</option>
        <option>3 Bedrooms</option>
        <option>4 Bedrooms</option>
        <option>4+ Bedrooms</option>
    </select>
    <input class="search_btn" name="search_button" type="submit" value="Search" />
</form>

我可以通過它搜索我的數據庫,但是讓我無法一次搜索多個對象而感到困惑。

這是PHP:

<?php
$search = $_GET['search'];
$terms = explode(" ", $search);
$query = "SELECT * FROM test WHERE";

foreach ($terms as $each) {
    $i++;
    if ($i == 1)
        $query .= " keywords LIKE '%$each%' ";
    else
        $query .= "OR keywords LIKE '%$each%' ";
}
if ($i == 1)
    $query .= " price BETWEEN 0 AND '%$each%'";

$query = mysql_query($query);
$numrows = mysql_num_rows($query);
if ($numrows > 0) {
    while ($row = mysql_fetch_array($query)) {
        $id = $row['id'];
        $title = $row['title'];
        $description = $row['description'];
        $keywords = $row['keywords'];
        $price = $row['price'];
        $link = $row['link'];
        echo "<h1>$title</h1><br />
        $description<br />$price<hr />";
    }
} else {
    echo "<b>Sorry we found no properties matching '$search', please try another term.</b>";
}

mysql_close();
?>

這是關於如何進行的粗略想法。 有更好的方法來編寫此函數。

<?php
            $search = $_GET['search'];
        $min_val = $_GET['min_val'];
        $max_val = $_GET['max_val'];
            //$terms = explode(" ", $search);
            $query = "SELECT * FROM test WHERE"; 
            $init=1;
            if (isset($search) ){
                $query .= (($init==1)?'':' OR ')." keywords LIKE '%$each%' ";
                $init=($init==1)?0:$init;   
            }
            if (isset($min_val) ){
                $query .= (($init==1)?'':' OR ')." price BETWEEN $min_val AND '$max_val' ";
                $init=($init==1)?0:$init;   
            }


            $query = mysql_query($query);
            $numrows = mysql_num_rows($query);
            if ($numrows > 0 ) {
                while ($row = mysql_fetch_array($query)) {
                    $id = $row['id'];
                    $title = $row['title'];
                    $description = $row['description'];
                    $keywords = $row['keywords'];
                    $price = $row['price'];
                    $link = $row['link']; 
                    echo "<h1>$title</h1><br />
                    $description<br />$price<hr />";
                }

            } else {
            echo "<b>Sorry we found no properties matching '$search', please try another term.</b>";
            }

            mysql_close();
        ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM