php - MySQL 查询到 CSV 格式

标签 php mysql database csv

我有一个包含两个表的数据库:core_members 和 core_fields_content。

core_members 具有以下列:member_id、姓名、电子邮件 core_pfields_content 具有以下列:member_id、field_1、field_2 等。

我想输出一个查询结果,该查询根据查询中提供的自定义字段值选择成员的姓名和电子邮件,并将其导出到 csv 文件。

我希望输出显示在列中,但在 Excel 中打开时,下面的代码在一个单元格中提供以下输出:name;email;test name;testemail@test.com;

如何更改代码以输出到列中,并以列名称作为标题?

<?php

    $csv_fileName = 'forumuserlist_'.date('Y-m-d').'.csv';

    // database variables
    $hostname = "localhost";
    $user = "";
    $password = "";
    $database = "";

    // Database connecten voor alle services
    mysql_connect($hostname, $user, $password)
    or die('Could not connect: ' . mysql_error());

    mysql_select_db($database)
    or die ('Could not select database ' . mysql_error());

    $csv_export = '';

    $query = mysql_query("SELECT m.name, m.email FROM core_members m, core_pfields_content p WHERE m.member_id=p.member_id AND p.field_4='LPC'");
    $field = mysql_num_fields($query);

    // create line with field names
    for($i = 0; $i < $field; $i++) {
      $csv_export.= mysql_field_name($query,$i).';';
    }
    $csv_export.= '';
    while($row = mysql_fetch_array($query)) {
      // create line with field values
      for($i = 0; $i < $field; $i++) {
        $csv_export.= $row[mysql_field_name($query,$i)].';';
      } 
      $csv_export.= ''; 
    }

    // Export the data and prompt a csv file for download
    header("Content-type: text/x-csv");
    header("Content-Disposition: attachment; filename=".$csv_fileName."");
    echo($csv_export);
?>

最佳答案

将分隔符从 ; 更改为到 , (逗号分隔值 => csv)并将列名和值括在双引号内

关于php - MySQL 查询到 CSV 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26913052/

相关文章:

PHP PDO FetchAll 与 Fetch

php - MySQL SELECT MIN 对于所有时间,但仅在 BETWEEN 日期时返回

mysql - SQL, "select (ALIAS - somevalue) from table, (select max(someotherval) ALIAS from table);"的功能?

php - 从数据库中为每个用户 ID 删除除最后 15 条之外的所有条目

mysql - 如何从外键表访问数据

php - Codeigniter 管理用户角色

php - 在 wamp 中为 magento 安装新的 php 版本

mysql - 在自引用表中显示同一列两次

php - 如何使用 IN 根据值列表选择具有空值的行?

mysql - 特定的MySQL批量插入性能调优