我手上有一个很奇怪的错误,我无法弄清楚。我尝试通过将$ username的值更改为实际值来进行调试,并且它可以很好地显示结果,我回显了SQL查询以查看正在传递的值,并且它们都是正确的,但是未显示任何结果。

有任何想法吗?谢谢

$sql = mysql_query("SELECT username1, username2 FROM friends WHERE username1 = '$username' OR username2 = '$username' AND friends >= 2") or die (mysql_error());
while ($row = mysql_fetch_assoc($sql)) {
        echo "<p>".$row['username1']."</p>";
}

最佳答案

您没有考虑AND优先于OR的问题。您需要添加括号。

$sql = mysql_query("SELECT username1, username2 " .
                   "FROM friends " .
                   "WHERE ( username1 = '$username' OR username2 = '$username' ) AND friends >= 2") or die (mysql_error());
while ($row = mysql_fetch_assoc($sql)) {
        echo "<p>".$row['username1']."</p>";
}

10-05 20:42
查看更多