while($ array = mysql_fetch_array($ queryresults)&& $ i< ='9'){echo“stuff”}

时间:2012-04-13 22:12:52

标签: php

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

代码是

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

如何让它在第9次结果后停止发出更多回声?谢谢!

4 个答案:

答案 0 :(得分:4)

首先设置限制条件也会确保你只获取9行,而不是10行和1次丢弃,因为&&被称为 lazy (如果第一部分是假的,它不会甚至看下一部分。)

$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'];
}

但我发现这个错误很容易..

答案 1 :(得分:2)

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

注意:

  1. 无需将9放入引号
  2. 您可以通过在$i++循环条件中执行while来进行比较后增量(尽管您不必这样做,但您也可以在echo $array['id']之后将其放在while循环中体)。
  3. 小心!从零开始,您需要< 9而不是<= 9,否则您将获得10次循环迭代。
  4. 干杯

答案 2 :(得分:0)

您的$i++需要在while循环中

您还应该$i <= 9而不是$i <= '9',但它应该仍然可以正常工作

答案 3 :(得分:0)

'9'需要为9

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