2013-08-05 113 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) { 
     // ... 
    } 
} 
相关问题