我在迭代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
我不确定为什么会这样 - 有人可以解释一下吗?
三江源
答案 0 :(得分:1)
mysql_fetch_array
同时取名为&数字键。使用mysql_fetch_assoc
或mysql_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.
}