У меня есть база данных с двумя таблицами: core_members и core_fields_content.MySQL Query to CSV Formatting
core_members имеет столбцы: member_id, имя, адрес электронной почты core_pfields_content имеет столбцы: member_id, field_1, field_2 и т.д.
Я хотел бы выводить результаты запроса, который выбирает имена и электронные письма члены, в соответствии с настраиваемым значением поля, указанным в запросе, и экспортируют его в файл csv.
Я хочу, чтобы вывод отображался в столбцах, но при открытии в excel приведенный ниже код дает мне следующий вывод в одной ячейке: имя, адрес электронной почты; имя теста; [email protected];
Как я могу изменить код для вывода в столбцы с именем столбца в качестве заголовка?
<?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);
?>
проверить это: http://php.net/manual/en/function.fputcsv.php – vaso123
Пожалуйста, [не использовать 'mysql_ *' функции] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), они больше не поддерживаются и [официально устарели] (https: //wiki.php.net/rfc/mysql_deprecation). Узнайте о [подготовленных заявлениях] (http://en.wikipedia.org/wiki/Prepared_statement) и используйте [PDO] (http://us1.php.net/pdo) или [MySQLi] (http: // us1.php.net/mysqli). Вы также захотите [Запретить SQL-инъекцию!] (Http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) –
@JayBlanchard, если честно, я не хочу знаю, что я делаю, это код, который я нашел в Интернете, а затем написал свой собственный запрос! – lcheney