用于空搜索的php else语句

时间:2015-09-19 10:31:32

标签: php mysql if-statement search keyword

我有一个搜索功能,可以匹配数据库中的关键字并回显一些html,但我不知道如何启用空搜索的处理。我可以使用else语句,还是必须重新定义相同的参数,如果没有设置,请使用!isset?

<?php
$con = mysqli_connect("localhost", "database", "password", "table");
if (isset($_GET['search'])) {
    $search_query = $_GET['search_query'];

    global $con;
    $get_item = "select * from database where keywords like '%$search_query%'";
    $run_item = mysqli_query($con, $get_item);
    while ($row_item = mysqli_fetch_array($run_item)) {

        $item_keywords = $row_item['item_keywords'];

        echo "Search found for $search_query";
    } // working fine up to here
} else {
    echo "Search not found for $search_query";
}
?>

5 个答案:

答案 0 :(得分:1)

您可以像这样为空搜索设置条件。

if (isset($_GET['search']) && trim($_GET['search']) !='') { ... }

答案 1 :(得分:1)

将您的条件更改为:

if (isset($_GET['search']) && trim($_GET['search_query']) != '') { 

}

答案 2 :(得分:1)

您可以使用isset()mysqli_num_rows()来检查空结果。并使用mysqli_real_escape_string来解雇您的查询

 if (isset($_GET['search'])) {
    if (isset($_GET['search_query']) && $_GET['search_query'] != "") {/// check variable is set or not
        $search_query = $_GET['search_query'];
        $$search_query = mysqli_real_escape_string($con, $search_query);//
        $get_item = "select * from `database` where `keywords` like '%$search_query%'";
        $run_item = mysqli_query($con, $get_item);
        $row_cnt = mysqli_num_rows($run_item); // count number of rows
        if ($row_cnt > 0) {
            while ($row_item = mysqli_fetch_array($run_item)) {
                $item_keywords = $row_item['item_keywords'];
                echo "Search found for $item_keywords";
            }
        } else {
            echo "Search not found for $item_keywords";
        }
    } else {
        echo "Search not found for $item_keywords";
    }
}

答案 3 :(得分:0)

修改你的if条件

if (isset($_GET['search']) && !empty($_GET['search_query'])) { 

}

答案 4 :(得分:0)

您可以使用empty功能

来完成此操作
if (!empty($_GET['search'])) {
    //your code
}