如果mysql字段为空

时间:2011-08-14 10:41:52

标签: php mysql

我有来自数据库的菜单。

$sqlCommand = "SELECT id, menu FROM myTable WHERE showing='1' ORDER BY id ASC"; 
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
$menu='';
while ($row = mysqli_fetch_array($query)) { 
    $id = $row["id"];
    $hormenu = $row["menu"];
    $menu .='<li><a href="mypage.php?id='.$id.'">'. $hormenu .'</a></li>';
     }

当我保持任何菜单字段为空时。 它告诉我

<li><a href="mypage.php?id='.$id.'"></a></li>

我怎么能隐藏或禁用它

任何帮助Plzz。

3 个答案:

答案 0 :(得分:1)

while ($row = mysqli_fetch_array($query)) { 
    if (!empty($row["menu"]))
        $menu .='<li><a href="mypage.php?id='.$row["id"].'">'. $row["menu"] .'</a></li>';
}

答案 1 :(得分:1)

检查是否有任何数据

$hormenu = $row["menu"];
if($hormenu){
    $menu .='<li><a href="mypage.php?id='.$id.'">'. $hormenu .'</a></li>';
}

答案 2 :(得分:0)

如果“当我保留任何菜单字段为空”表示数据库中的行具有NULL''值,则只是不选择此类行,即排除menu行字段为空将(menu <> '')AND(menu IS NOT NULL)添加到查询的WHERE子句中。所以你的SQL将是

SELECT id, menu FROM myTable WHERE(showing='1')AND(menu <> '')AND(menu IS NOT NULL) ORDER BY id ASC

尽管最好不要将这些(无效的?)行保存到数据库中。