0

此代码将数据导出到 csv 文件中,该文件在 Excel 中打开。

当字符串中包含逗号时,它会打乱数据的顺序。

我需要帮助修改下面的代码以解析其中包含逗号的任何字符串,以便在字符串之后才创建新列。

我假设它将在双引号或包含字符串的内容中传递每个字符串,因此这些引号中的任何逗号都会产生异常。

任何帮助表示赞赏。

$result = mysql_query("select lname, fname, email, dtelephone, etelephone, contactwhen, comments, thursday, 
friday, saturday, sunday, monday FROM volunteers_2010");

$csv_output .= "Last Name,First Name,Email,Telephone (Day),Telephone (Evening),Contact When,Comments,Thursday,Friday,Saturday,Sunday,Monday,Comments\n";

$i = 0;
if (mysql_num_rows($result) > 0) {
 while ($row = mysql_fetch_assoc($result)) {
  $csv_output .= $row['Field'].", ";
  $i++;
 }
}
$csv_output .= "\n";

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

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

3 回答 3

3

fputcsv()

于 2010-06-12T19:55:44.043 回答
3

见维基百科中的文章

嵌入逗号的字段必须用双引号括起来

于 2010-06-12T19:55:49.360 回答
2

正确格式:“test”、“test”、“use double”、“引号内”

第一个循环:

$csv_output .= '"' . str_replace('"', '""', $rowr['Field']) . '", ';

第二个循环:

$csv_output .= '"' . str_replace('"', '""', $rowr[$j]) . '", ';
于 2010-06-12T20:37:25.110 回答