mysql — оператор php else для пустого поиска

У меня есть функция поиска, которая сопоставляет ключевые слова из базы данных и выводит некоторые 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

Решение

Ты можешь использовать 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";
}
}
1

Другие решения

Измените ваше состояние на:

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

}
1

Вы можете установить условие для пустого поиска следующим образом.

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

Изменить ваше условие if

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

}
0

Вы можете сделать это с помощью empty функция:

if (!empty($_GET['search'])) {
//your code
}
0
По вопросам рекламы [email protected]