2011-07-20 66 views
0

我必須通過一個SQL查詢迭代一個問題:的mysql_query行值迭代問題

$result = mysql_query("SELECT * FROM transactions"); 

while($row = mysql_fetch_array($result)) { 
// this returns 3 rows 

foreach ($row as $values) 
{ 
//fputcsv($a_csv, $values; 
echo $values; 
} 

}

腳本迭代不錯,但它似乎是通過每行去兩次。所以,我收到輸出的是以下幾點:

value1value1value2value2value3value3

我不知道這是爲什麼 - 任何人都可以解釋一下嗎?

三江源

回答

0

您需要訪問$row這樣$row[0]和$行不應該在foreach()本身,除非它也是某種數組,你需要遍歷。

$result = mysql_query("SELECT * FROM transactions"); 

while($row = mysql_fetch_row($result)) 
{ 
    echo $row[0]; 
    echo $row[1]; 
    // ... etc. 
} 
+1

爲什麼不應該在'foreach'中?有完全有效的理由這樣做。 – Wrikken

+0

'明顯'?他希望像http://pastebin.com/PAViVJAz這樣的文件,foreach將是一個非常有效的方法。 – Wrikken

1

mysql_fetch_array取兩者命名&數字鍵。使用mysql_fetch_assocmysql_fetch_row

+0

不錯,謝謝你 – whistlegull

1
$result = mysql_query("SELECT * FROM transactions"); 

//return an associative array 
while($row = mysql_fetch_assoc($result)) { 
// this returns 3 rows 
$values = "{$row["name_of_column1"]}, {$row["name_of_column2"]}, {$row["name_of_column3"]}"; 
//fputcsv($a_csv, $values; 
//print the whole row array 
print_r($row); 
//echo value in format value1, value2, value3 
echo $values; 
}