[英]Export data to csv using wpdb database
我想在csv中导出sql表的数据。 我正在使用以下代码:
<?php
if(isset($_POST['export']))
{
$file = 'email_csv'; // ?? not defined in original code
$results = $wpdb->get_results("SELECT * FROM `scholarship_uesr`;",ARRAY_A);
if (empty($results)) {
return;
}
$csv_output = '"'.implode('";"',array_keys($results[0])).'";'."\n";;
foreach ($results as $row) {
$csv_output .= '"'.implode('";"',$row).'";'."\n";
}
$csv_output .= "\n";
$dir = "/home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/csv/";
$filename = $file."_".date("Y-m-d_H-i",time()).".csv";
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
// echo "<div class='alert alert-info'>Data Written to CSV File. <a href='".$geturl."' download>Click Here to Download</a></div>";
}
$allsubs = "SELECT * FROM `scholarship_uesr`";
$select_query = $wpdb->get_results($allsubs);
//echo $wpdb->last_error;
?>
<form method="post" action="#" enctype="multipart/form-data">
<input type="submit" name="export" class='btn btn-danger' value="Export Data to CSV !!!">
</form>
当我使用此代码时,它将直接打印数据库的数据,而不是下载文件。
当我打开error_reporting
它会抛出错误:
Warning: Cannot modify header information - headers already sent by (output started at /home/modifoun/public_html/wp-admin/includes/template.php:2041) in /home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/student_list.php on line 45
Warning: Cannot modify header information - headers already sent by (output started at /home/modifoun/public_html/wp-admin/includes/template.php:2041) in /home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/student_list.php on line 46
Warning: Cannot modify header information - headers already sent by (output started at /home/modifoun/public_html/wp-admin/includes/template.php:2041) in /home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/student_list.php on line 47
如何使用Wordpress将数据导出到CSV
您需要在开始输出之前运行此程序。 看起来您的模板文件中有这个吗?
尝试将其添加到您的functions.php文件中。
add_action('init', 'exportCsv');
function exportCsv() {
if(isset($_POST['export']))
{
$file = 'email_csv'; // ?? not defined in original code
$results = $wpdb->get_results("SELECT * FROM `scholarship_uesr`;",ARRAY_A);
if (empty($results)) {
return;
}
$csv_output = '"'.implode('";"',array_keys($results[0])).'";'."\n";;
foreach ($results as $row) {
$csv_output .= '"'.implode('";"',$row).'";'."\n";
}
$csv_output .= "\n";
$dir = "/home/modifoun/public_html/wp-content/plugins/schloarship/menu-pages/csv/";
$filename = $file."_".date("Y-m-d_H-i",time()).".csv";
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header( "Content-disposition: filename=".$filename.".csv");
print $csv_output;
exit;
// echo "<div class='alert alert-info'>Data Written to CSV File. <a href='".$geturl."' download>Click Here to Download</a></div>";
}
}
唯一需要的是ob_start()和ob_end_clean()
在if(isset($ _ POST ['export']))之后,使用ob_start(),在此if语句的右括号之前,使用ob_end_clean()。
使用以下标题
header('内容描述:文件传输');
header(“ Content-Type:application / csv”);
标头(“内容处置:附件;文件名= Report.csv”);
header(“ Pragma:no-cache”);
header(“ Expires:0”);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.