2013-04-03 39 views
0

我有一個mysql表格,用於存儲用戶的手機號碼,現在我只想使用php將這些數字導出到.csv文件,而我不希望在每個數字的末尾使用逗號。現在假設我已經保存在我的表在未來3個數字:從mysql表導出數據到一個.csv文件

123456789 
+966123456789 
00966123456789 

現在,如果我用下面的代碼:

$result = mysql_query("SELECT cellphone FROM user"); 
if ($result) { 
    while ($row = mysql_fetch_array($result)) { 
     $cellphones .= $row["cellphone"] . ",\r\n"; //note the comma here 
    } 
} 

$filename = "cellphones_" . date("Y-m-d_H-i"); 
header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=" . $filename . ".csv"); 
print $cellphones; 
exit; 

我會在我有這樣的數字.csv文件:

+966123456789, 
00966123456789, 
123456789, 

但是如果我使用相同的代碼,而逗號是這樣的:

$cellphones .= $row["cellphone"] . "\r\n"; 

代替:

$cellphones .= $row["cellphone"] . ",\r\n"; //note the comma here 

然後在.csv文件的編號爲:

9.66123E+11 
9.66123E+11 
123456789 

那麼,什麼是錯了,我怎樣才能得到這些數字正確顯示沒有逗號?

+0

這是Excel的問題,而不是您的CSV,我懷疑。嘗試在記事本中查看文件以查看您正在生成的內容。 – andrewsi

+0

$手機。='「'。$ row [」cellphone「]。'」'。爲 「\ r \ n」 個; –

+0

@andrewsi我已經試圖將這些數字導出爲一個.txt文件,而不用逗號,它可以很好地工作。正如我所解釋的,當我嘗試將它們導出到.csv文件時,出現問題。 – Amr

回答

1

說明

逗號被視爲在每個行中的值的一部分,所以MS Excel將數據作爲一個字符串時它導入....這意味着其將被存儲在單元「原樣」。如果沒有逗號,MS Excel會將該值作爲數字進行處理,使用不顯示前導零的通用格式,並且如果數字超過定義的數字位數,則切換到科學格式。

解決方案

爲了始終把值作爲一個字符串,沒有逗號,請用雙引號的值。

$cellphones .= '"' . $row["cellphone"] . '"' . "\r\n";