制作PHP IF语句以确定是否存在来自MySQL查询的任何结果

时间:2015-04-20 13:12:07

标签: php mysql

我有一个网站,根据品牌和产品说明排序饮料。或者'等级'。当访问特定饮料的页面时,其中一个菜单显示当前饮料的产品描述(如果点击进入显示来自不同品牌的具有相同产品描述的其他饮料的页面)并且悬停在节目上来自相同品牌的饮料,带有不同的产品描述(悬停效果通过简单的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>

?>

2 个答案:

答案 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
}