У меня есть функция поиска, которая сопоставляет ключевые слова из базы данных и выводит некоторые 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";
}
?>
Ты можешь использовать 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";
}
}
Измените ваше состояние на:
if (isset($_GET['search']) && trim($_GET['search_query']) != '') {
}
Вы можете установить условие для пустого поиска следующим образом.
if (isset($_GET['search']) && trim($_GET['search']) !='') { ... }
Изменить ваше условие if
if (isset($_GET['search']) && !empty($_GET['search_query'])) {
}
Вы можете сделать это с помощью empty
функция:
if (!empty($_GET['search'])) {
//your code
}