2012-01-17 79 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