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

Php 如果查询结果为空,则回显错误消息,php,database,mysqli,Php,Database,Mysqli,如果查询为空,如何添加另一条错误消息?我尝试了mysqli\u num\u行,但没有成功:/ $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()) { i

如果查询为空,如何添加另一条错误消息?我尝试了
mysqli\u num\u行
,但没有成功:/

$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>";
}
$que=newmysqli($host、$db\u user、$db\u password、$db\u name);
$tbl=$que->查询
("
选择iditem,nazwa
从'idlist2'开始
其中nazwa喜欢“%$name%”
");
而($value=$tbl->fetch_assoc())
{
if(strlen($name)==0 | | strlen($name)==NULL)
{
回声“!”;
打破
}
echo$value['iditem'].$value['nazwa'].“
”; }
这里有一种方法:

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
}
while($value=$tbl->fetch_assoc())
{
$notempty=true;//如果获取任何内容,请设置一个变量
if(strlen($name)==0 | | strlen($name)==NULL)
{
回声“!”;
打破
}
echo$value['iditem'].$value['nazwa'].“
”; } 如果(!isset($notempty)){ 回显“其他错误消息”;//如果未设置,则显示其他消息 }
实际上,您的做法是错误的<代码>mysqli_num_rows用于以过程方式进行查询

在代码示例中,您通过调用
newmysqli()
创建了一个新对象。要获取使用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();
if($tbl->num\u rows>0){
而($value=$tbl->fetch_assoc())
{
if(strlen($name)==0 | | strlen($name)==NULL)
{
回声“!”;
打破
}
echo$value['iditem'].$value['nazwa'].“
”; } }否则{ 回显“未找到结果”; } $que->close();
count($tbl->fetch\u assoc())您可以添加
mysqli\u num\u行的用法吗?正如@Andrew指出的,在这个用例中,简单地计算结果的数量就足够了。这里真正的问题是@user3783243提到的失败的mysqli_num_行,它没有添加到Q@Andrew不会
计数($tbl->fetch_assoc())
只计算所取行中的列,或者,如果没有要获取的行,则尝试计数(null)?