W o virgüller / düzgün bir CSV dosyasına dize vermeniz gerekir

6 Cevap php

EDIT: Bu sorunun içine fonksiyonun Kopyalanan yanlış parçası, aşağıda uygun biridir.

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

Ben bir virgül olabilir yorumlarınız ve yorum alanında bir virgül olduğunda bile çift tırnak, bu tüm csv dosyasını atıyor.

Aşağıdaki kod bir csv dosyasına koymak, csv dizeye verileri yükler nasıl.

Nasıl ben düzgün yorumlar alan verileri vermek için alabilirim?

6 Cevap

Çift tırnak alanını içine alın. Herhangi bir gömülü çift tırnak kadar çift.

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

Bu soruya çok çok yakın olduğunu unutmayın Dealing with commas in a CSV file

UMN, neden sadece yerleşik mySQL komutunu kullanmak değil mi? Ben bir şey kaçırdıysanız, görmezden, ama bu hızlı rota olduğunu düşünüyorum lütfen:

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

Web temelde öneriyor:

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

"|" Veya "@" veya veri görünmesini olası değildir diğer bazı karakter farklı bir sınırlayıcı gibi kullanabilirsiniz.

Çoğu csv yazılım ayırıcı olarak virgül dışında bir şey kullanır, bir "csv" dosyasını okumak için yeteneğine sahiptir.

Edit: Benim hatam, ben sadece test edilmiş ve bu işe yaramazsa - değil Excel'de en azından.

Ancak, başka bir şey ile virgül yerini alabilir:

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

O bunu dışa zaman veri virgül ve çift tırnak tutmak için önemli mi? Her zaman onu okuyun ve sonra CSV dışa aktarmadan önce verileri değiştirebilir.

Ne genellikle do çift tırnak içinde her şeyi içine alıp "," (çift tırnak virgül çift tırnak) benim ayraç içinde bir kombinasyon yapmak olduğunu. Ben rastgele bir çift tırnak ya da rastgele bir virgül takılmaları eğer bu şekilde, büyük bir anlaşma değil.