Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:生成的CSV文件不';你没有头球吗?_Php_Mysql_Csv - Fatal编程技术网

PHP:生成的CSV文件不';你没有头球吗?

PHP:生成的CSV文件不';你没有头球吗?,php,mysql,csv,Php,Mysql,Csv,我正在使用PHP从MYSQL数据库创建一个简单的CSV文件 CSV文件创建得很好,内容在需要的地方,但CSV文件没有任何标题 此smy代码: <?php header('Content-Type: text/csv; charset=utf-8'); header('Content-Disposition: attachment; filename=data.csv'); $output = fopen('php://output', 'w'); $r

我正在使用PHP从MYSQL数据库创建一个简单的CSV文件

CSV文件创建得很好,内容在需要的地方,但CSV文件没有任何标题

此smy代码:

<?php 
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=data.csv');

    $output = fopen('php://output', 'w');

    $rows = mysqli_query($db_conx, 'SELECT u.email as referrer, 
                                        ref.email as referred 
                                    from users u 
                                        INNER JOIN users ref 
                                            on u.ref_code=ref.ref_code_used');

    while ($row = mysqli_fetch_assoc($rows)) {


      fputcsv($output, $row);
    }
    fclose($output);
    mysqli_close($db_conx);
    exit();

?>
但这不会将头放在CSV文件中

有人能就这个问题提出建议吗


提前谢谢

像这样的怎么样。首先,我们检查您是否有输出头。如果没有,请使用array_keys函数打印标题

$headers = false;

while ($row = mysqli_fetch_assoc($rows)) {

  if (!$headers) {
    fputcsv($output, array_keys($row));
    $headers = true;
  }

  fputcsv($output, $row);
}

这对我来说很好:

<?php
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=data.csv');

    $output = fopen('php://output', 'w');

    $rows = mysqli_query($db_conx, 'SELECT u.email as referrer, ref.email as referred from users u INNER JOIN users ref on u.ref_code=ref.ref_code_used');

    $headers = "referrer, referred";
     fputcsv($output, explode(', ', $headers));
    while ($row = mysqli_fetch_assoc($rows)) {



      fputcsv($output, $row);
    }
    fclose($output);
    mysqli_close($db_conx);
    exit();

?>


缺少列标题是否与您没有尝试在输出中放置任何列标题有关?当您仅循环数据并将其写入文件时,为什么会有神奇的列标题?;)您需要首先实际构建列标题,然后循环行并将它们放入。try
fputcsv($output,array_keys($row))在您的第一次循环迭代中,我将如何确定它只打印一次留给您:D@RiggsFolly是的,我太快了,更正。--
<?php
    header('Content-Type: text/csv; charset=utf-8');
    header('Content-Disposition: attachment; filename=data.csv');

    $output = fopen('php://output', 'w');

    $rows = mysqli_query($db_conx, 'SELECT u.email as referrer, ref.email as referred from users u INNER JOIN users ref on u.ref_code=ref.ref_code_used');

    $headers = "referrer, referred";
     fputcsv($output, explode(', ', $headers));
    while ($row = mysqli_fetch_assoc($rows)) {



      fputcsv($output, $row);
    }
    fclose($output);
    mysqli_close($db_conx);
    exit();

?>