Все работает отлично, но я столкнулся с проблемой, когда я экспортирую данные в файл CSV. Я попытался найти похожие проблемы, но я не нашел ничего, что могло бы иметь отношение к моей проблеме.CSV-вывод для нескольких столбцов
Этот код должен экспортировать всю таблицу базы данных из базы данных mySQL. Он делает это отлично, но дело в том, что он помещает все данные в первый столбец - в разные ячейки. Размещение ячейки в порядке, но предполагается распространение данных по нескольким столбцам (13 в моем случае).
Вот скриншот, чтобы объяснить, что происходит:
Код:
<?php
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: filename=export.csv");
#$query=mysql_query("set names 'utf8'");
#mb_http_output('UTF-8');
#mb_http_input('UTF-8');
#mb_language('uni');
#mb_regex_encoding('UTF-8');
#ob_start('mb_output_handler');
#header('Content-type: text/html; charset=utf-8');
$conn = mysql_connect('localhost', 'root', 'asdasd') or die(mysql_error());
mysql_select_db('nooruse', $conn) or die(mysql_error($conn));
$query = sprintf('SELECT osakond as Osakond, soetusaasta as Soetusaasta, it_number as IT_Number, tooteruhm as Tooteruhm, mudeli_nimetus as Mudeli_nimetus, sn as SN, riigivara_nr as Riigivara_nr, inventaari_nr as Inventari_nr, maja as Maja, ruum as Ruum, vastutaja as Vastutaja, markus as Markus,kasutajanimi as Kasutajanimi FROM norse5_proov');
$result = mysql_query($query, $conn) or die(mysql_error($conn));
$row = mysql_fetch_assoc($result);
if ($row) {
echocsv(array_keys($row));
}
while ($row) {
echocsv($row);
$row = mysql_fetch_assoc($result);
}
function echocsv($fields)
{
$separator = '';
foreach ($fields as $field) {
if (preg_match('/\\r|\\n|,|"/', $field)) {
$field = '"' . str_replace('"', '""', $field) . '"';
}
echo $separator . $field;
$separator = ',';
}
echo "\r\n";
}
Спасибо заранее.
На моем взгляде выше кода работает отлично. Вы должны проверить свой разделитель csv в excel ....... –