Проверьте, не найден ли результат в mysql db - PullRequest
3 голосов
/ 23 октября 2011

Я написал php для поиска таблицы в mysqli, и она отлично работает, но я хочу показать правильное сообщение пользователю, если результат не найден.

вот мой текущий код:

$search_string=$_GET["design"];

$connect= mysqli_connect("mysql.myhost.com","abc","123456","mydb_db");
$query="select * from product where product_design like '%$search_string%'";
$rows= @mysqli_query($connect,$query) or die("Error: ".mysqli_error($connect));
if ($rows!=null)//I put this if to check if there is any result or not but its not working
{

while(($record=mysqli_fetch_row($rows))!=null)
{
    .
            .//i have working code for showing the result here
            .
}   
mysqli_close($connect);
}
else{
echo"no result found";
}

Не могли бы вы помочь мне, что не так, даже когда я ищу что-то, чего нет в БД, программа не отображает "результат не найден"

Спасибо

Ответы [ 2 ]

3 голосов
/ 23 октября 2011

Что вам нужно, это mysqli_num_rows , в частности, бит mysqli_result::num_rows. Это добавляет свойство num_rows к наборам результатов mysqli. Это означает, что вы можете сделать

$rowCount = $rows->num_rows

Есть также не-OO эквивалент ...

$rowCount = mysqli_num_rows($rows);

(Разница только в стиле кодирования)

Используйте одну из них, чтобы определить, сколько записей возвращено, и вывести соответствующие сообщения.

0 голосов
/ 23 октября 2011

Следующая строка не имеет смысла, это может быть проблемой.

while(($record=mysqli_fetch_row($rows))!=null)

Однако $ row не вернул бы 'null', если бы он был пустым, но не был установлен. Сделайте это так:

if ($rows) { echo 'works';} else { echo 'no rows'; }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...