2012-04-13 64 views
2

所以我有一个查询,虽然我的查询可能返回20个结果,但我只希望它显示前9个结果。有一个愚蠢的原因,我不只是限制查询结果9,为了这个目的,我需要知道如何停止的功能的同时,如果$ i达到9

代码是

$i = 0; 
    while($array = mysql_fetch_array($queryresults) && $i <= '9') 
    { 
       echo $array['id']; 
       $i++; 
    } 

如何我是否会在第9次结果后停止输出更多回声?谢谢!

回答

4

把限制条件第一也将确保你只取9行,不是和10和一个丢弃,因为&&被称为(如果第一部分是假的,它甚至不会看接下来的部分)。

$i = 0; 
while($i < 9 && $array = mysql_fetch_array($queryresults)){ 
    echo $array['id']; 
    $i += 1; 
} 

,或者如果你想成为幻想:

$i = 9; 
while($i-- > 0 && $array = mysql_fetch_array($queryresults)){ 
    echo $array['id']; 
} 

但我觉得这是很容易出错..

+0

谢谢。是的,我发现它也是这样,但这是一个奇怪的情况,我必须这样做:\我的老板只需要这样做就可以......所以......这样做。感谢帮助! – Darius 2012-04-13 22:19:33

0

$i++需要在while循环中

你也应该有$i <= 9而不是$i <= '9',但它仍应该按原样工作

0

'9' 必须是9

$i = 0; 
while($array = mysql_fetch_array($queryresults) && $i < 9){ 
    echo $array['id']; 
    $i += 1; 
} 
2
$i = 0; 
while($array = mysql_fetch_array($queryresults) && $i++ < 9) 
    echo $array['id']; 
} 

注:

  1. 没有必要把9引号
  2. 可以增加-后比较由while$i++循环条件(虽然你不需要,你也可以在echo $array['id']之后的while循环体)。
  3. 小心!从零开始,你想要< 9而不是<= 9,否则你会得到10次循环迭代。

干杯

+0

感谢您的注意! :) – Darius 2012-04-13 22:20:02

+1

不客气,请随时投票我的答案,如果它是有益的! ;) – Madbreaks 2012-04-13 22:21:41