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)?