我有一个搜索功能,可以匹配数据库中的关键字并回显一些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";
}
?>
答案 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
}