Wordpress使用$ wpdb将数据从数据库导出到csv

时间:2017-09-04 06:47:30

标签: php wordpress csv

我遇到了这个问题,我有一个代码将数据插入数据库,并在wordpress页面查询。然后我想在csv中导出它,但我不知道该怎么做。我在互联网上找到了代码但没有工作。我不知道为什么,请检查我的代码。这是我的代码..

 global $wpdb;
    if(isset($_POST["Export"])){
    $result = $wpdb->get_results('SELECT * FROM backend_member', 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";
    }
}

<div><form class="form-horizontal" action="" enctype="multipart/form-data" method="post" name="upload_excel">
<div class="form-group">
<div class="col-md-4 col-md-offset-4"><input class="btn btn-success" name="Export" type="submit" value="export to excel" /></div>
</div>
</form></div>

点击导出时。我有一个错误。

This site can’t be reached

The webpage at http://www.rimelig-skat.dk/din-admin/ might be temporarily down or it may have moved permanently to a new web address.
ERR_INVALID_RESPONSE

1 个答案:

答案 0 :(得分:0)

这是更新的代码:

global $wpdb;
if(isset($_POST["Export"])){
    $filename = 'test';
    $date = date("Y-m-d H:i:s");
    $output = fopen('php://output', 'w');
    $result = $wpdb->get_results('SELECT * FROM     tp_users', ARRAY_A);
    fputcsv( $output, array('ID', 'Title', ' Date'));
    foreach ( $result as $key => $value ) {
        $modified_values = array(
                        $value['ID'],
                        $value['user_login'],
                        $value['user_email']
        );
        fputcsv( $output, $modified_values );
    }
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: private", false);
    header('Content-Type: text/csv; charset=utf-8');
    // header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename=\"" . $filename . " " . $date . ".csv\";" );
    // header('Content-Disposition: attachment; filename=lunchbox_orders.csv');
    header("Content-Transfer-Encoding: binary");exit;
}

HTML

<div><form class="form-horizontal" action="" enctype="multipart/form-data" method="post" name="upload_excel">

此代码在我的wordpress中完美运行。