好的,所以出于某种原因,这给我一个错误,如下所示:http: //prime.programming-designs.com/test_forum/viewboard.php?board = 0但是,如果我拿走'&& $ cur_row <10'它工作正常.为什么'&& $ cur_row <10'会导致我出现问题?
$sql_result = mysql_query("SELECT post, name, trip, Thread FROM (SELECT MIN(ID) AS min_id, MAX(ID) AS max_id, MAX(Date) AS max_date FROM test_posts GROUP BY Thread ) t_min_max INNER JOIN test_posts ON test_posts.ID = t_min_max.min_id WHERE Board=".$board." ORDER BY max_date DESC", $db);
$num_rows = mysql_num_rows($sql_result);
$cur_row = 0;
while($row = mysql_fetch_row($sql_result) && $cur_row < 10)
{
$sql_max_post_query = mysql_query("SELECT ID FROM test_posts WHERE Thread=".$row[3]."");
$post_num = mysql_num_rows($sql_max_post_query);
$post_num--;
$cur_row++;
echo''.$cur_row.'<br/>';
echo'<div class="postbox"><h4>'.$row[1].'['.$row[2].']</h4><hr />' .$row[0]. '<br /><hr />[<a href="http://prime.programming-designs.com/test_forum/viewthread.php?thread='.$row[3].'">Reply</a>] '.$post_num.' posts omitted.</div>';
}
Run Code Online (Sandbox Code Playgroud)
运算符优先级 - 赋值(=)的优先级低于&&.
你的代码行等同于这一行(这显然是有缺陷的):
while($row = (mysql_fetch_row($sql_result) && $cur_row < 10))
Run Code Online (Sandbox Code Playgroud)
您可以通过使用and运算符代替&&或使用括号来解决此问题.
while($row = mysql_fetch_row($sql_result) and $cur_row < 10)
Run Code Online (Sandbox Code Playgroud)
要么
while(($row = mysql_fetch_row($sql_result)) && $cur_row < 10)
Run Code Online (Sandbox Code Playgroud)