使用for循环遍历mysql结果

时间:2012-01-08 13:21:28

标签: php mysql for-loop

通常,当您遍历mysql结果时,您可以执行以下操作:

    while ($row = mysql_fetch_assoc($result)) {
        echo $row["some argument"];
    }

如何使用for循环执行此操作?这将有所帮助,所以我可以迭代我的结果的某一部分。我正在寻找类似的东西:

 for($i = 5; $i < 10; $i++){
    echo $row[$i]["some argument"];
 }

谢谢!


编辑1

为了澄清,我需要遍历结果的部分,这可能意味着例如第5行到第10行。

此外,我的结果是来自表的一部分行,而不是整个表中的一行,所以我认为更改my_sql查询不应该是答案的一部分。

6 个答案:

答案 0 :(得分:7)

我相信您可以像这样使用mysql_result()

// Do your query here
$result = mysql_query("SELECT * FROM your_table");

for($i = 5; $i < 10; $i++){
   echo mysql_result($result, $i, "some argument");
}

编辑注意到我的PHP语法有点偏,现在已经纠正。

答案 1 :(得分:4)

您可以将整个结果集加载到数组中,并在您询问时访问它:

$all_results = array();
while ($row = mysql_fetch_assoc($result)) {
    // Append all rows to an array
    $all_results[] = $row;
}

现在您可以按以下方式访问它:

echo $all_results[3]['somecolumn'];

或者在for循环中:

for($i = 0; $i < 10; $i++){
  echo $all_results[$i]["somecolumn"];
}

答案 2 :(得分:2)

如果您希望浏览行的子范围的任何细分字段,那么您可以考虑

 mysql_result($result,$row_num,$field)

子程序

返回result

中row_num'th行的字段属性值

说如果你想获得结果行的子范围的“某个参数”字段的值,你可以在代码片段后面看到

$result = mysql_query("some query");
$num_rows = mysql_num_rows($result);
for($i=5;$i<$num_rows;$i++) {   // here I have used range 5 to max of result rows
    echo mysql_result($result,$i,"some argument"); 
}

答案 3 :(得分:1)

有很多方法可以做到这一点,但是如果你只是想使用while迭代所有返回的行是最简单的解决方案。这是另一个:

$count = mysql_num_rows($result);

 for(int i = 0; i < $count; i++){
$row = mysql_fetch_assoc($result);
    echo $row["some argument"];
 }

答案 4 :(得分:1)

如果您只需要一个正向运行的游标,那么

for(int i = 0; i < 10; i++){
    $row = mysql_fetch_assoc($result
    if (!$row) break;
    echo $row["some argument"];
}

如果需要可搜索光标,则需要将结果拉入数组;

$rows=array();
while ($row = mysql_fetch_assoc($result)) {
    $rows[]=$row;
}

//.. later, maybe repeatedly

for(int i = 0; i < 10; i++){
    echo $rows[i]["some argument"];
}

答案 5 :(得分:0)

像这样:

 for(int i = 0; i < 10; i++){
    $row = mysql_fetch_assoc($result)
    echo $row["some argument"];
 }