处理搜索查询和操作

时间:2016-03-23 23:37:29

标签: php

我做了一个搜索功能,可以让用户搜索并查看数据库的结果。

首先 - 我想将搜索查询(用户搜索的内容)转移到搜索操作中(searchact.php)

当用户填写下面的输入字段(表单)并点击搜索...

<form action="searchact.php" class=" form-inline" method="post">
    <div class="form-group">
        <input type="text" name="word" class="form-control" placeholder="House key word">
    </div>
    <div class="form-group">
        <select name="location" class="form-control">
            <option value="Bosso">Bosso Campus</option>
            <option value="GK">Gidan Kwano Campus (GK)</option>
        </select>
    </div>
    <div class="form-group">
        <select name="price" class="form-control">
            <option>10-49k</option>
            <option>50-99k</option>
            <option selected>100-149k</option>
            <option>150-199k</option>

        </select>
    </div>
    <input type="submit" class="submit" name="submit" value="Search...">
</form>

我希望下一页url(searchact.php)类似于

  ?

wwww.test.com/searchact.php的 Q =单词安培;位置= BOSSO&安培;价格= 10-49k

这是searchact.php

<?php
if($_POST["submit"])
{
$word = $_POST["word"];
$location = $_POST["location"];
$price = $_POST["price"];
$sql = "INSERT INTO search (word,location,price) VALUES (:word,:location,:price)";
        $q = $connecDB->prepare($sql);
        $q->execute(array(':word'=>$word, ':location'=>$location, ':price'=>$price));
if($q)
{
$query = "SELECT * FROM house WHERE location LIKE :location AND tag LIKE :info AND range LIKE :range order by id desc LIMIT 10";
$stmt = $connecDB->prepare($query);
$stmt->bindValue(':info', '%' . $word . '%', PDO::PARAM_INT);
$stmt->bindValue(':location', '%' . $location . '%', PDO::PARAM_INT);
$stmt->bindValue(':range', '%' . $price . '%', PDO::PARAM_INT);
$stmt->execute();
if ($stmt->rowCount() > 0) { 
$result = $stmt->fetchAll();
foreach( $result as $row ) {
$hid=$row["id"];
$name=$row["name"];
?>
<!--Some Html-->
<?php
}} 
else {
echo 'No result found';
}
}}
?>

第二 - 如何确保用户实际搜索某些内容而无需手动访问&#34; searchact.php&#34;

喜欢..当用户访问searchact.php而不输入任何搜索查询时,如何将用户重定向到错误页面。

0 个答案:

没有答案