2013-08-05 76 views
-5

當我運行下面的代碼時,它執行!但是,有一個問題。 if($photoIDdislike["magic"] == 1)不起作用,爲什麼程序會說if語句是錯誤的。我的邏輯錯誤是什麼?我如何解決這個問題,以便代碼正常工作。爲什麼我的代碼不起作用

<?php 
$con = mysqli_connect("127.0.0.1:3306","root","root","photoshare"); 
$query = "SELECT ID,nickname,photoLikes FROM tbl_photo"; 
$result = mysqli_query($con,$query); 
$query_dislike = "SELECT idGivenLike, nickname, magic FROM tbl_check_like"; 
$resultDislike = mysqli_query($con,$query_dislike); 
$photoIDdislike; 
$photoID; 
while($photoID = mysqli_fetch_assoc ($result)) 
{ 
    if(mysqli_fetch_assoc($resultDislike)!= null) 
    { 
     while($photoIDdislike = mysqli_fetch_assoc($resultDislike)) 
     { 
       //checks if both of results 
      if($photoID["ID"] == $photoIDdislike["idGivenLike"])   
       { 
       if($photoIDdislike["magic"] == 1) 
       { 

        echo '<a href=img/'.$photoID["ID"].'.php><img src="uploads/'.$photoID["ID"].'.jpg" alt="Picture" class="photo" width="800" height="600"/></a> 
         </br> 
         התמונה הועלתה על ידי '.$photoID["nickname"].' 
           <form action="unlike.php" method="POST" > 
           <input type="image" src="img/unlike.png" width="20" height="20" name="submit" value="'.$photoID["ID"].'"/> 
           לייקים:'.$photoID["photoLikes"].' 
           </form> 
           '; 

       } 
       } 
     } 
    } 
    else 
       echo '<a href=img/'.$photoID["ID"].'.php><img src="uploads/'.$photoID["ID"].'.jpg" alt="Picture" class="photo" width="800" height="600"/></a> 
            </br> 
            התמונה הועלתה על ידי '.$photoID["nickname"].' 
              <form action="like.php" method="POST" > 
              <input type="image" src="img/like.jpg" width="20" height="20" name="submit" value="'.$photoID["ID"].'"/> 
              לייקים:'.$photoID["photoLikes"].' 
              </form> 
              '; 



} 
?> 

我的數據庫結構: tbl_check_like: idGivenLink |暱稱|魔術(如果他給出了這樣的說法)

tbl_photo: ID |暱稱| photoName | photoLikes | photoLink | photoDeleteLink

+0

這是不可能的答案,請張貼您的數據庫的結構。 – matt3141

+0

如果if中的表達式總是返回false,則應該調試您的方式以查看爲什麼您的魔術變量未設置爲1。 – Renan

+0

@ matt3141我添加了我的數據庫結構(每個數據庫的所有列)。 ID - idGiveLink是照片的編號 – Yoni

回答

0

診斷這個問題不應該太難。 var_dump的值爲$photoIDdislike["magic"]。然後,您需要採取幾個行動方案之一。

  1. 如果該值與您的期望值不同,例如,它等於0,那麼在您的應用程序邏輯中不存在開始的問題。當然在這種情況下,您的平等檢查可能需要更改。
  2. 如果輸出與您所期望的相符,請檢查數據類型,即它實際上是一個數字。
  3. 如果沒有打印任何內容,即使通過執行echo 'var_dump:'; var_dump(...);驗證它不是空字符串,也不會滿足先前的條件,即$photoID["ID"] == $photoIDdislike["idGivenLike"]

測試代碼。

if($photoID["ID"] == $photoIDdislike["idGivenLike"]) { 
    echo "var_dump:\n"; 
    var_dump($photoIDdislike["magic"]); 
    if($photoIDdislike["magic"] == 1) { 
     // ... 
    } 
} 
相關問題