当我运行以下代码时,它会执行!但是,有一个问题。 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 :(得分:0)
诊断这个问题不应该太难。 var_dump
$photoIDdislike["magic"]
的值0
。然后,您需要采取一些行动方案之一。
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) {
// ...
}
}
。测试代码。
{{1}}