PHP检查行和会话是否为空

时间:2016-12-13 21:49:10

标签: php

我试图检查表中的行是否为空且会话也在,我可以知道我在这里做错了什么。

 if (empty($row['images']) && (!isset($_SESSION['picture']) || $_SESSION['picture'] == ''))

编辑: 发布代码为我试图根据图片发布一些部门,如果没有图片,我发布一个演示。 我希望我解释得对。

if (mysqli_multi_query($conn, $sql)) {
    do {
        if ($result = mysqli_store_result($conn)) {
            while ($row = mysqli_fetch_array($result)){
                if (empty($row['images']) && (!isset($_SESSION['picture']) || $_SESSION['picture'] == '')){
                    echo "<div>" ;
                    echo "                  <img src='images/logo.png' alt=""/>";
                    echo "                  <h1>This Is A Demo</h1>";
                    echo "                  <p>This is a Demo paragraph .</p>";
                    echo"                   <a href='../go_back.php'>Demo</a>";
                    echo "</div>" ;
                } else{
                    echo "<div>" ;
                    if(!empty($row['images'])) {
                        echo "                  <img src='images/users_iamge.png' alt=""/>";
                        echo "                  <h1>Not Demo</h1>";
                        echo "                  <p>This is Not Demo paragraph .</p>";
                    }else{ // fetch the session
                        echo "                  <img src='images/users_iamge.png' alt=""/>";
                        echo "                  <h1>Not Demo</h1>";
                        echo "                  <p>This is Not Demo paragraph .</p>";
                    }
                }       
                echo'<h1>' 
                echo'<p>'
                echo "</div>";                  
            }
            mysqli_free_result($result);
        }   
    } while (mysqli_more_result($conn));
}

1 个答案:

答案 0 :(得分:1)

你的逻辑似乎是错误的。 在php中重新basic operators

仅在第一个条件的计算结果为false时才评估or中的第二个条件。

因此,如果设置了$_SESSION['picture'],则$_SESSION['picture'] == ''的评估将永远不会发生(作为或者评估为真的第一个条件)。

获得您想要的功能(下面的truetable)

Empty  | SEmpty  | SNull  | Result
-------+---------+--------+---------
  0        0         0        0
  0        0         1        0
  0        1         0        0
  0        1         0        0
  1        0         0        0
  1        0         1        1
  1        1         0        1
  1        1         1        1

你需要:

if( empty($row['images']) && 
       ( (isset($_SESSION['picture']) && $_SESSION['picture'] == '') ||
         !isset($_SESSION['picture']) ) 
  )