MySQL PHP экспорт в CSV проблемы - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь экспортировать данные из MySQL в CSV с помощью PHP с веб-сайта. Когда пользователь щелкает по генерации отчета, он автоматически создает его и загружает в виде файла на свой компьютер. Код ниже, я следовал онлайн-учебник, но я столкнулся с некоторыми проблемами. В настоящее время он загрузится, но покажет только одну строку с одним значением даты из данных mySQL.

Мне было интересно, что мне нужно сделать, чтобы показать все данные в CSV-файле и как мне обеспечить печать имен строк. Любая помощь будет отличной!

 @header("Content-Disposition: attachment; filename=record.csv");

 $select = "SELECT * FROM DBtable WHERE user_id=$id";
 $result2=$conn->query($select);
     while($row=$result2->fetch_assoc()){

      $data=$row['pain']."\n";
      $data=$row['sleep']."\n";
      $data=$row['mood']."\n";
      $data=$row['heartrate']."\n";
      $data=$row['time_of_entry']."\n";

    }

     echo $data;
     exit();

1 Ответ

0 голосов
/ 08 июля 2019

Вместо того, чтобы устанавливать значения $ строки в $ data, вы должны вместо этого вывести эхо

 @header("Content-Disposition: attachment; filename=record.csv");

 $select = "SELECT * FROM DBtable WHERE user_id=$id";
 $result2=$conn->query($select);
     while($row=$result2->fetch_assoc()){

      echo $row['pain']."\n";
      echo $row['sleep']."\n";
      echo $row['mood']."\n";
      echo $row['heartrate']."\n";
      echo $row['time_of_entry']."\n";

    }
     exit();

Ваш код просто устанавливает $ data в значение строки, фактически ничего не делая с ним. Каждая строка перезаписывает предыдущую, поэтому, когда вы делаете echo $ data, вы выводите последнее значение, которое было установлено, в вашем случае это было значение "time of entry" последних циклов.

Что касается добавления «имен строк», то в настоящее время код вводит значение, а затем новую строку. Возможно, вы захотите заменить "\ n" на ",", чтобы данные зацикливались на одну строку, а затем перед закрытием цикла while выведите "\ n", чтобы вставить символ новой строки. Затем вы можете поместить заголовки таким же образом, используя эхо и разделенные запятыми заголовки, за которыми следует символ новой строки.

Например

echo $row['pain'].",";
echo $row['sleep'].",";
echo $row['mood'].",";
echo $row['heartrate'].",";
echo $row['time_of_entry'].",";
echo "\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...