-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 |昵称 | 照片名称 | 照片喜欢 | 照片链接 | 照片删除链接

4

1 回答 1

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) {
        // ...  
    }
}   
于 2013-08-05T23:59:03.617 回答