如果mysql字段为空

问题描述:

我有数据库菜单。如果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。

+0

你确定吗?为什么会表明这一点?你能提供$ row ['menu']的值和你想要生成的HTML吗? – thomasrutter

+0

我已经输入了这个错误

  • Actualy it is
  • Ask4Tec

    检查是否有任何数据

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

    谢谢你这么多你解决它。 – Ask4Tec

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

    如果“当我保留任何菜单场空”是指在数据库中的行有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 
    

    Althought它很可能是最好不要这样(无效?)行保存到数据库中的。