2009-04-21 5 views
5

EDIT:この質問に関数の間違った部分がコピーされました。以下は適切なものです。CSVファイルに適切にカンマを含む文字列をエクスポートする必要があります

$values = mysql_query("SELECT lname, fname, email, dtelephone, etelephone, contactwhen, thursday, 
friday, saturday, sunday, monday, comments FROM volunteers_2009 WHERE venue_id = $venue_id"); 

while ($rowr = mysql_fetch_row($values)) { 
    for ($j=0;$j<$i;$j++) { 
     $csv_output .= $rowr[$j].", "; 
    } 
    $csv_output .= "\n"; 
} 

私はそれがコメントフィールドにカンマがある場合、それは全体のCSVファイルをオフに投げ、それにカンマを有することができ、コメント、さらには二重引用符を持っています。

以下のコードは、csvファイルに格納するためにcsv文字列にデータをロードする方法です。

コメントフィールドのデータを正しくエクスポートするにはどうすればよいですか?

答えて

6

フィールドを二重引用符で囲みます。埋め込み二重引用符をダブルアップします。

ordinary field,"field with , in it","field with double double quote ("""")" 

これはあなたがfputcsv()をチェックアウトする必要があります質問Dealing with commas in a CSV file

+0

さて、これは言語特有のものです(私はその質問の回答がCまたはC++で書かれていると思います)。 sshowは、他の質問では与えられていない非常に良いphp固有の解決策を提供しています。 – Calvin

+0

それで、私は「他の質問に近い」と言って、「正確に重複しているので」(それは面白いですが、その2つの単語「閉じる」は私の方言の発音とは違って発音され、 ;第2の有声音の音声)。 –

+1

また、x-ref'dの質問に対する答えは、この問題を解決する(または提案された解からの出力の質を評価する)コードを生成するために必要なアルゴリズム情報を提供します。 –

0

編集:私の悪い、私はちょうどそれをテストし、それは動作しません - 少なくともExcelではありません。

ただし、何か他のものとカンマを置き換えることができます:

$field = str_replace(',','#COMMA#',$row['Field']); 
$csv_output .= $field.', '; 
0

はあなたが好きな別の区切り文字を使用することができます「|」 「@」などの文字や、データに表示されない可能性があるその他の文字を入力します。

ほとんどのCSVソフトウェアには、コンマ以外のものを区切り文字として使用する "csv"ファイルを読み取る機能があります。

+0

@はメールアドレスに記載されているので良い例ではないかもしれませんが、これは単なる例です。 –

10

に非常に、非常に近いことに注意してください。そこにもいくつかの有用なコメントがあります。

int fputcsv (resource $handle , array $fields [, string $delimiter = ',' 
    [, string $enclosure = '"' ]]) 

fputcsv()は、指定されたファイルハンドルを する(改行によって終了)CSVとして(fields配列として を通過した)ラインをフォーマットし、それを書きます。

1

私は組み込みのmySQLコマンドを使用しないでください。私が何かを逃した場合は、無視し、私はこれは最速ルートであるとお考え下さい。

http://www.netreveal.com/ddalton/2006/08/how_to_export_mysql_to_csv.html

ウェブサイトは基本的に示唆:

SELECT <fields or *> INTO OUTFILE '/tmp/result.text' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
FROM <table> WHERE <condition> 
0

あなたのデータにコンマと二重引用符を保つことが重要ですあなたはそれをエクスポートする? CSVにエクスポートする前に、いつでもデータを読み込んで変更することができます。

私が一般的にしていることは、すべてを二重引用符で囲み、 "、"(二重引用符を二重引用符)の区切り文字の組み合わせにします。そうすれば、ランダムな二重引用符やランダムカンマを見つけたとしても大したことではありません。

関連する問題