2016-12-13 63 views
0

即時通訊嘗試檢查表中的行是否爲空,並且會話也在,我可以知道我在這裏做錯了什麼。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)); 
} 
+3

如果沒有更多的情況下,我們不能幫你。這*看起來好。 –

+0

我在錯誤日誌中沒有錯誤,但是這是我添加到代碼中的一個條件,它不起作用,謝謝你的驗證 – Mavia

+1

但是你想達到什麼,@Mavia?上下文缺失......不清楚你在問什麼 – 2016-12-13 21:54:51

回答

1

你的邏輯似乎是錯誤的。 在PHP中回收basic operators

or中的第二個條件僅在第一個條件評估爲false時才被評估。

因此,如果設置了$_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'])) 
)