Lat*_*nis 0 php csv pdo export-to-excel
编辑:我将"echo($ row)"更改为"print_r($ row)",现在正在下载的csv将每个数组括在括号中,并提供所有提到的数据,但是如何自定义所有数据的打印方式?
现在,它正在打印:
数组([id] => 1 [名字] =>"蒂米")数组(....
(其中每一行是excel电子表格中的下一行)
我如何制作此输出以便每条记录都有自己的行?例如,excel中的第一列是id,那么第二列是firstname,每条记录都是自己的行?
我的main.php中有一个链接:
<a class="btn" href="export.php">Export</a>
Run Code Online (Sandbox Code Playgroud)
那么这是我的export.php文件:
<?php
//open database connection
try {
$db = new PDO('mysql:host=localhost;dbname=DBNAME;charset=utf8',
'DBUSER',
'DBPASS');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
}
catch(PDOException $ex) {
echo "did not connect...";
}
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=exported-data.csv');
$sql = "SELECT * FROM table_name;";
$sth = $db->prepare($sql);
$sth->execute();
$filename = date('d.m.Y').'.csv';
$data = fopen($filename, 'w');
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
fputcsv($data, $row);
print_r($row);
}
echo "\r\n";
fclose($data);
?>
Run Code Online (Sandbox Code Playgroud)
为了将关联数组正确放入文件中,您需要解析数组,然后将该行放在文件中:
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
$csv = implode(',', $row) . "\n";
fwrite($data, $csv);
print_r($csv);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |