PHP / SQL如果为null,则执行其他操作

时间:2015-12-12 15:21:23

标签: php sql null

我想检查表中的特定值是否设置为null,以便相应地回显信息。我希望如果将$row['GeneralID']设置为null,则打印特定代码,如果不打印另一个代码,则会影响事物的显示方式。

function responsive_menu($sql) {
    include 'connect.php';
    $result = $conn->query($sql);
    if ($result->num_rows > 0);
    $current_album = "";

    echo "<div id='responsive_menu'>\n<div id='show_menu'>\n<img src='media/images/show-menu-icon.png' alt='menu_icon'/>\n</div>\n<div id='cssmenu'>\n<ul>\n";  
    while ($row = $result->fetch_assoc()) {
        if ($current_album <> "" && $current_album <> $row['pageID']) {
            if ($row['GeneralID'] <> NULL) {
                echo "</ul></li>\n";  
            }
            else {
            echo "";  
            }
        }
        if ($current_album <> $row['pageID']) {
            if ($row['GeneralID'] <> NULL) {
                echo "<li class='has-sub'><a href='".$row['pageURL']."?pageID=".$row['pageID']."'><span>".$row['page_name']."</span></a>\n<ul>\n";  
            }
            else {
            echo "<li><a href='".$row['pageURL']."?pageID=".$row['pageID']."'><span>".$row['page_name']."</span></a>\n</li>\n";  
            }
        $current_album = $row['pageID'];
        }
        if ($row['GeneralID'] == NULL) {
            echo "";
        } else {        
        echo "<li><a href='info.php?pageID=".$row['pageID']."&infoID=".$row['GeneralID']."'><span>".$row['general_name']."</span></a></li>\n";
        }
    }
    echo "</ul>\n</div>\n</div>\n";
    $conn->close();
}

以下是顶部生成的代码以及代码应在底部显示的方式:http://jsfiddle.net/yevfc1rw/

2 个答案:

答案 0 :(得分:0)

你需要3个等号:

if( $row['GeneralID'] === NULL ) //do stuff

当使用2个等号时,PHP将NULL,false,0和空字符串视为相等。

3个标志将确保检查类型和值

答案 1 :(得分:0)

<>运算符在PHP中无效,您应该使用!=,但PHP仍然有一个函数来检查值是否为空is_null()。因此,您应该使用$row['GeneralID'] <> NULL而不是!is_null($row['GeneralID'])

$row['GeneralID']

即,!不为空。 $row['GeneralID'] == NULL表示不是。

或者检查varible是否为null,而不是is_null($row['GeneralID']) ;

SELECT tStamp, high_temp FROM temps WHERE tStamp=1060560000 OR tStamp=1092182400 OR tStamp=1123718400;