这是我的代码:
$values = mysql_query("SELECT cult_desc FROM culture");
while ($rowr = mysql_fetch_row($values)) {
for ($j=0;$j<$i;$j++) {
$csv_output .= $rowr[$j]."; ";
}
$csv_output .= "\n";
}
$filename = $file."_".date("d-m-Y_H-i",time());
#echo $filename;
echo $csv_output;
据我所知,它应该遍历每一段数据,并用&#34;;&#34;然后换行。相反,它没有给我输出。
答案 0 :(得分:1)
从变量名称($csv_output
),您似乎需要CSV格式的输出。
如果你有FILE
权限,为什么不调用
$values = mysql_query("SELECT cult_desc INTO OUTFILE '/tmp/result.txt'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n'
FROM culture");
readfile("/tmp/result.txt");
否则下面的代码就会这样做。
$values = mysql_query("SELECT cult_desc FROM culture");
$csv_output = "";
while ($rowr = mysql_fetch_row($values)) {
$csv_output .= implode(";", $rowr). "\n";
}
$filename = $file."_".date("d-m-Y_H-i",time());
#echo $filename;
echo $csv_output;
答案 1 :(得分:0)
尝试使用空字符串初始化$csv_output
,以便它可以连接到其中。否则您可能会收到通知,但您的代码将无效。另外,请检查以确保结果中确实存在值。
$csv_output = ''
应该这样做,在循环之前调用它,除非你在其他地方初始化它。
您还需要将$i
替换为$j
,除非您在其他地方声明$i
?
答案 2 :(得分:0)
首先,mysql_fetch_row在你的情况下只有一个键0(存储cult_desc字段)。
您可以使用以下代码:
$csv_output = "";
$values = mysql_query("SELECT cult_desc FROM culture");
while ($rowr = mysql_fetch_assoc($values)) {
$csv_output .= $rowr['cult_desc']."; \n";
}
$filename = $file."_".date("d-m-Y_H-i",time());
#echo $filename;
echo $csv_output;
我用mysql_fetch_assoc替换了mysql_fetch_row,因此你得到字段名称作为键而不是数字。有了它,您可以使用cult_desc
直接访问