循环 - 可能只有6个循环?

时间:2011-11-28 21:09:21

标签: php while-loop

这是我的代码,我希望它只能执行前6个数组项。另外,如何在6个第一个数组之后为所有内容写一个循环?

while ($servdescarrayrow = mysql_fetch_array("servdescarray")) {

    ECHO "<fieldset>Services: ".$servdescarrayrow."</fieldset>";
}

5 个答案:

答案 0 :(得分:6)

首次请求时请尝试以下操作:

$count = 0;
while($servdescarrayrow = mysql_fetch_array("servdescarray")) {
  $count++;
  echo "<fieldset>Services: ".$servdescarrayrow."</fieldset>";
  if($count == 6){
    break;
  }
}

然后你可以在下面做第2部分:

$count = 0;
while($servdescarrayrow = mysql_fetch_array("servdescarray")) {
  $count++;
  if($count > 6){
    echo "<fieldset>Services: ".$servdescarrayrow."</fieldset>";
  }
}

或者(更好)是在SQL查询中使用LIMIT

答案 1 :(得分:4)

要只拥有前6行,最好的方法是以这种方式在sql语句中使用LIMIT

SELECT *
FROM table
WHERE condition
LIMIT 6

如果你想有一个打印前6行的循环,然后是另一个打印剩余行的循环,请使用nickb提供的解决方案。

答案 2 :(得分:2)

for( $i = 0; $i < 6; $i++)
{
    $servdescarrayrow = mysql_fetch_array("servdescarray");
    ECHO "<fieldset>Services: ".$servdescarrayrow."</fieldset>";
}

获取剩余的条目(因为结果集将记住它停止的位置):

while ($servdescarrayrow = mysql_fetch_array("servdescarray")) {

    ECHO "<fieldset>Services: ".$servdescarrayrow."</fieldset>";
}

答案 3 :(得分:1)

SELECT * 
FROM table 
WHERE condition 
OFFSET 6 

此查询将获得前6后的所有内容。 我假设你正在使用mysql。

答案 4 :(得分:0)

添加单循环方法。为了简单易读,我们使用计数变量$rowNum来确定循环中的操作。

    $rowNum = 0;
    while ($servdescarrayrow = mysql_fetch_array("servdescarray")) {
        $rowNum++;

        if($rowNum<=6)
        {
             ECHO "<fieldset>Services: ".$servdescarrayrow."</fieldset>";
        }
        else
        {
            // Code for other items
        }
    }