我有一个网站,根据品牌和产品说明排序饮料。或者'等级'。当访问特定饮料的页面时,其中一个菜单显示当前饮料的产品描述(如果点击进入显示来自不同品牌的具有相同产品描述的其他饮料的页面)并且悬停在节目上来自相同品牌的饮料,带有不同的产品描述(悬停效果通过简单的CSS完成)。
这一切都运行正常 - 但有些品牌只有一个产品,这意味着菜单出现但高度为零(边框除外)并且没有数据,这看起来并不好。所以我想要的是一个IF语句,它会检测MySQL查询是否有任何结果,并根据结果使用不同的CSS - 但我似乎无法找到一种有效的方法。
(之前定义了$ Brand和$ ProductDescription,并参考当前的饮料)
<?php
$sql = "
SELECT DISTINCT
ProductDescription
FROM
WebDatabaseText
WHERE
Brand='$Brand' AND
ProductDescription<>'$ProductDescription' AND
Hide=0 AND
Language='$Language' AND
Website='$Website' AND
ProductDescription <> '(brand notes)'
ORDER BY
ProductDescription
";
$result = $conn->query($sql);
如果至少有一个结果:
echo "<ul id='nav' class='drop'>
<li><a href='/english/grades/?Grade=". $ProductDescription . "'>" . $ProductDescription . "</a> ";
echo " <ul>";
while($row = $result->fetch_assoc()) {
echo "<li><a href='/english/products/?Brand=" . $Brand . "&ProductDescription=". $row["ProductDescription"] . "'>" . $row["ProductDescription"] . "</a> </li>";
}
echo " </ul> </li> ";
echo " </ul>";
如果没有:
echo "<ul id='nav' class='drop'>
<a href='/english/grades/?Grade=". $ProductDescription . "'>" . $ProductDescription . "</a> </ul>
?>
答案 0 :(得分:1)
找到的记录数量在mysqli_num_rows
函数中。
if ($result->num_rows > 0) {
while (...) {
...
}
} else {
echo 'Nothing found';
}
答案 1 :(得分:1)
尝试
if ($result->num_rows > 0) {
//your while loop here
} else {
//do something
}