Эхо-сообщение об ошибке, если результат запроса пуст - PullRequest
0 голосов
/ 29 августа 2018

Как добавить еще одно сообщение об ошибке, если запрос пуст? Я пробовал с mysqli_num_rows безуспешно. : /

$que = new mysqli($host, $db_user, $db_password, $db_name);
$tbl = $que->query
("
 SELECT iditem, nazwa
 FROM  `idlist2` 
 WHERE nazwa LIKE  '%$name%'
");

while($value=$tbl->fetch_assoc())
{
    if(strlen($name) == 0 || strlen($name) == NULL)
    {
        echo '<font color="green">!</font>';
        break;
    }
    echo $value['iditem'] . $value['nazwa'] . "<br>";
}

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Вы на самом деле делаете это неправильно. mysqli_num_rows используется, когда вы запрашиваете процедурным образом.

В вашем примере кода вы создали новый объект, вызвав new mysqli(). Чтобы получить количество строк, извлекаемых при использовании конструкции ООП, вы должны получить значение свойства num_rows. И вот как это сделать:

if ($tbl->num_rows > 0) {
    while($value=$tbl->fetch_assoc())
    {
        if(strlen($name) == 0 || strlen($name) == NULL)
        {
            echo '<font color="green">!</font>';
            break;
        }
        echo $value['iditem'] . $value['nazwa'] . "<br>";
    }
} else {
        echo "No result found";
}
$que->close();
0 голосов
/ 29 августа 2018

Вот один из способов сделать это:

while($value=$tbl->fetch_assoc())
{
    $notempty = true;                              // set a variable if you fetch anything
    if(strlen($name) == 0 || strlen($name) == NULL)
    {
        echo '<font color="green">!</font>';
         break;
    }
    echo $value['iditem'] . $value['nazwa'] . "<br>";
}
if (!isset($notempty)) {
    echo 'other error message';                   // show the other message if it isn't set
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...