mysql_query行值迭代问题

时间:2011-07-20 15:30:47

标签: php mysql foreach

我在迭代SQL查询时遇到问题:

$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

我不确定为什么会这样 - 有人可以解释一下吗?

三江源

3 个答案:

答案 0 :(得分:1)

mysql_fetch_array同时取名为&数字键。使用mysql_fetch_assocmysql_fetch_row

答案 1 :(得分: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;
 }

答案 2 :(得分:0)

您需要像$row那样访问$row[0]并且$ row不应该在foreach()中,除非它也是您需要迭代的某种数组。

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

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