2012-01-17 61 views
0

这里是我的代码:回声不给我输出

$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; 

据我所知,它应该通过每一块数据的走了,带着它呼应了“;”然后换行。相反,它不给我输出。

+2

$ i的价值是多少?尝试($ j = 0,$ i = count($ rowr); $ j <$ i; $ j ++)。在这种情况下将其更改为mysql_fetch_assoc – galchen 2012-01-17 20:17:19

+0

取决于$ i的值是以 – 2012-01-17 20:18:00

+0

开头的值你在哪里设置$ i的值? – 2012-01-17 20:18:05

回答

0

尝试使用空字符串初始化$csv_output,以便将其连接到某个字符串上。否则,您可能会收到通知,而您的代码将无法工作。此外,请检查以确保结果中有实际的值。

$csv_output = ''应该做的伎俩,在你的循环之前调用它,除非你在别处初始化它。

您还需要用$j替换$i,除非您在其他地方声明$i

+0

只要用$ j替换$ i听起来不太好,如果有for循环“for($ j = 0; $ j <$ i; $ j ++)”... – eis 2012-01-17 20:24:25

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; 
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