2012-01-08 71 views
2

通常,當您通過一個MySQL結果迭代你做這樣的事情:通過迭代的MySQL結果用一個for循環

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

你如何for循環做了?這將有所幫助,因此我可以遍歷結果的某個部分。我正在尋找類似的東西:

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

謝謝!


EDIT 1

只是爲了澄清,我需要遍歷的結果的一部分,這可能意味着行5到10,例如。

此外,我的結果是表中的行的一部分,而不是整個表的一部分,所以我認爲更改my_sql查詢不應該是答案的一部分。

+0

我將循環的c語法改爲PHP語法... – 2012-01-08 13:27:52

+1

我不同意你的編輯。恕我直言,使用'LIMIT'仍然是獲得行子集(即5到10)的最正確方法。 – Kaii 2012-01-08 13:54:44

+0

請指出爲什麼更改sql查詢不是答案的一部分? – ianace 2012-01-08 13:59:02

回答

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語法有點過,現予以更正。

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"]; 
} 
0

像這樣:

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

有很多方法可以做到這一點,但如果您只是想使用while循環遍歷所有返回的行,這是最簡單的解決方案。下面是另一個:

$count = mysql_num_rows($result); 

for(int i = 0; i < $count; i++){ 
$row = mysql_fetch_assoc($result); 
    echo $row["some argument"]; 
} 
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"]; 
} 
2

,如果您希望通過行子範圍的任何particlar領域涉水的話可以考慮

​​

常規

返回領域的結果屬性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"); 
}