【问题标题】:Export database table to csv using WordPress page and php使用 WordPress 页面和 php 将数据库表导出到 csv
【发布时间】:2015-06-10 22:08:42
【问题描述】:

我一直在尝试制作一个 Wordpress 页面,该页面将使用我的“统计”表中的数据导出 .csv 文件。如果我把它放在 .php 文件中,下面的这个脚本可以在 localhost 上完美运行。

但在 Wordpress 中,它不适合我。我已使用插入 php 插件将此脚本放在单独的页面中。当我访问此页面时,它会下载 .csv 文件,但里面的数据不是表中的数据。它提供数据,带有 div 标签和错误。我还尝试了 Exchange 中的其他脚本,但它再次返回了这个奇怪的文件,所以很明显问题出在 WordPress 和我的理解上。

代码:我把这个脚本放在 www.mydomain.com/export 上(这是 wordpress 页面)。

[insert_php]
global $wpdb;
$result = $wpdb->get_results('SELECT * FROM statistics', ARRAY_A);

header('Content-Type: text/csv');
$date = date("Y-m-d H:i:s");
header('Content-Disposition: attachment;filename=EXPORT_' . $date . '.csv');

foreach ($result as $row) {
    if ($row) {
        exportCsv(array_keys($row));
    }}
while ($row) {
    foreach ($result as $row) {
            exportCsv($row);
    }}
function exportCsv($rows) {
    $separator = '';
    foreach ($rows as $row) {
        echo $separator . $row;
        $separator = ',';
    }
    echo "\r\n";
}
[/insert_php]

我错过了什么?如何使这种情况发生?我想在 MySQL 中导出一个表,将其导出为 .csv 文件格式,以便用户可以在计算机上下载。

使用 WordPress 页面和 php 将数据库表导出到 csv。

【问题讨论】:

    标签: php wordpress csv export export-to-csv


    【解决方案1】:

    我严重怀疑代码是否可以工作:while ($row) 总是正确的(无限循环)。

    我改变了一点:

    $result = $wpdb->get_results('SELECT * FROM statistics', ARRAY_A);
    
    if ($wpdb->num_rows) {
    
        exportCsv(array_keys(current($result)));
    
        foreach ( $result as $row )
            exportCsv($row);
    
    }
    
    function exportCsv($fields) {
        echo implode(',', $fields) . "\r\n";
    }
    

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-10
        • 1970-01-01
        • 2018-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 1970-01-01
        相关资源
        最近更新 更多