【问题标题】:Wordpress - export a mysql table to csv with column headersWordpress - 使用列标题将 mysql 表导出到 csv
【发布时间】:2017-12-01 22:15:11
【问题描述】:

我可以为我的表格下载一个 csv 格式的文件,但是如何将列标题添加到同一个文件中。

当前代码如下-

// load wpdb
    $path = $_SERVER['DOCUMENT_ROOT'];
    include_once $path . '/wp-load.php';

     global $wpdb;

   $table = $_POST["table_name"];// table name
   $file = 'database_csv'; // csv file name
   $results = $wpdb->get_results("SELECT * FROM $wpdb->prefix$table",ARRAY_A );

   if(count($results) > 0){
      foreach($results as $result){
      $result = array_values($result);
      $result = implode(", ", $result);
      $csv_output .= $result."\n";
    }
  }

  $filename = $file."_".date("Y-m-d_H-i",time());
  header("Content-type: application/vnd.ms-excel");
  header("Content-disposition: csv" . date("Y-m-d") . ".csv");
  header( "Content-disposition: filename=".$filename.".csv");
  header("Pragma: no-cache");
  header("Expires: 0");
  print $csv_output;
  exit;

【问题讨论】:

  • $csv_output = "Column1;Column2;Column3;"?
  • @u_mulder 我想动态获取列名以自动执行此操作:)
  • 然后使用搜索。我找到了这个stackoverflow.com/questions/4165195/…
  • @u_mulder 有相同的 wordpress 功能吗?
  • 我不熟悉WP所以不知道

标签: php mysql wordpress export-to-csv


【解决方案1】:

我能够通过首先获取列名然后将其分配给最终输出来做到这一点:

  $table_name = $wpdb->prefix.$_POST["table_name"];// table name
                       $file = 'database_csv'; // csv file name
                       $results = $wpdb->get_results("SELECT * FROM $table_name",ARRAY_A );

                        // get column names
                        $query = "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='".$wpdb->dbname."' AND `TABLE_NAME`='".$table_name."'";

                        $columnNamesList = $wpdb->get_results($query);  


                        foreach ( $columnNamesList as $column_name ) {
                            $csv_output.=$column_name->COLUMN_NAME.",";
                        }


                        // remove last additional comma 
                        $csv_output = substr($csv_output,0,strlen($csv_output)-1);

                        // start dumping csv rows in new line
                        $csv_output.="\n";

                       if(count($results) > 0){
                          foreach($results as $result){
                          $result = array_values($result);
                          $result = implode(", ", $result);
                          $csv_output .= $result."\n";
                        }
                      }

                      $filename = $file."_".date("Y-m-d_H-i",time());
                      header("Content-type: application/vnd.ms-excel");
                      header("Content-disposition: csv" . date("Y-m-d") . ".csv");
                      header( "Content-disposition: filename=".$filename.".csv");
                      header("Pragma: no-cache");
                      header("Expires: 0");
                      print $csv_output;
                      exit;

【讨论】:

    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2016-06-21
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    相关资源
    最近更新 更多