如果查询结果为空,则返回错误消息

时间:2018-08-29 17:44:27

标签: php database mysqli

如果查询为空,如何添加另一个错误消息?我尝试了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 :(得分:0)

这里是一种方法:

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
}

答案 1 :(得分:0)

您实际上是在以错误的方式进行此操作。当您以程序方式进行查询时,将使用mysqli_num_rows

在代码示例中,您通过调用new mysqli()创建了一个新对象。要获取使用OOP构造时获取的行数,您应该获取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();