通常,当您遍历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查询不应该是答案的一部分。
答案 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"];
}