fputcsv - 表中的列显示在一列中

时间:2016-05-19 19:09:31

标签: php mysql fputcsv

将数据从mysql数据库放入csv文件时出现问题。列标题正常,但表中的其余行都在一列中。请帮忙..

<?php
$con=mysqli_connect("localhost","asasdd","asasdasd","asdasd");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  header('Content-Type: text/csv; charset=utf-8');
  header('Content-Disposition: attachment; filename=data.csv');
  $output = fopen('php://output', 'w');

  $array = array("Id;Imie_i_nazwisko;Nazwa_kursu;Data_kursu");
  $array = str_replace('"', '', $array);
  fputcsv($output, $array);

  $rows = mysqli_query($con, 'SELECT * FROM kursanci');
  while ($row = mysqli_fetch_assoc($rows))
  {
    fputcsv($output, $row);
  }
  mysqli_close($con);

&GT;

决心应该是这样的:

<?php
$con=mysqli_connect("localhost","asd","asd","asd");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }
  header('Content-Type: text/csv; charset=utf-8');
  header('Content-Disposition: attachment; filename=data.csv');

  $output = fopen('php://output', 'w');
  $array = array('Id','Imie_i_nazwisko','Nazwa_kursu','Data_kursu');
  fputcsv($output, $array, ';');

  $rows = mysqli_query($con, 'SELECT * FROM kursanci');
  while ($row = mysqli_fetch_assoc($rows))
  {
    fputcsv($output, $row, ';');
  }
  mysqli_close($con);

&GT;

1 个答案:

答案 0 :(得分:0)

CSV文件需要“,”作为分隔符。只有MS-Excel使用“;”默认为分隔符。

替换;的{​​{1}},使您的数组成为标题的多个元素,并感到高兴!

,

如果您使用的是MS-Excel和/或需要使用“;”作为分隔符,只需使用:

$array = array("Id;Imie_i_nazwisko;Nazwa_kursu;Data_kursu");
$array = array('Id','Imie_i_nazwisko','Nazwa_kursu','Data_kursu');