/*
* Generate CSV File as per Filtration
* @param array $rowTitle
* @param array $DataArr
*/
public static function geterate_csvfile($rowTitle,$DataArr){
ob_end_clean();
$csv_output = '';
/*
* Get The Row Titles
*/
foreach ($rowTitle as $key => $value) {
$csv_output = $csv_output . $value . ',';
}
$csv_output .= "\n";
/*
* Fill data as per row title
*/
foreach ($DataArr as $rowr) {
foreach ($rowr as $key => $values) {
$csv_output .= $values . ',';
}
$csv_output .= "\n";
}
$filename = 'result';
$generatedDate = date("Y-m-d H:i:s.u");
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: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . $filename . " " . $generatedDate . ".csv\";" );
header("Content-Transfer-Encoding: binary");
echo $csv_output;
}
Usage:
geterate_csvfile($rowTitle,$DataArr);
Getting Data From SQL file:
Simply put it into template file
$post = $_POST['postcode'];
$ftime = $_POST['from_date'];
$ttime = $_POST['to_date'];
ob_end_clean();
$csv_output = '';
$result = $wpdb->get_results("SHOW COLUMNS FROM `order_details`");
if (count($result) > 0) {
foreach($result as $row) {
$csv_output = $csv_output . $row->Field . ',';
}
$csv_output = substr($csv_output, 0, -1);
}
$csv_output .= "\n";
$values = $wpdb->get_results("SELECT * FROM `order_details` WHERE `order_postcode` LIKE '%$post%' AND `time` BETWEEN '$ftime' AND '$ttime'");
foreach ($values as $rowr) {
$fields = array_values((array) $rowr);
$csv_output .= $rowr->id . ',';
$csv_output .= $rowr->order_id . ',';
$csv_output .= $rowr->order_name . ',';
$csv_output .= $rowr->order_email . ',';
$csv_output .= $rowr->order_address . ',';
$csv_output .= $rowr->order_city . ',';
$csv_output .= $rowr->order_postcode . ',';
$csv_output .= $rowr->order_total . ',';
$csv_output .= $rowr->sub_total . ',';
$csv_output .= $rowr->order_order_key . ',';
$csv_output .= $rowr->product_name . ',';
$csv_output .= $rowr->item_quantity . ',';
$csv_output .= $rowr->phone . ',';
$csv_output .= $rowr->time . ',';
$csv_output .= $rowr->pick_time . ',';
$csv_output .= $rowr->drop_time . ',';
$csv_output .= $rowr->status . ',';
$csv_output .= "\n";
}
$filename = $post;
$generatedDate = date("Y-m-d H:i:s.u");
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: application/octet-stream");
header("Content-Disposition: attachment; filename=\"" . $filename . " " . $generatedDate . ".csv\";" );
header("Content-Transfer-Encoding: binary");
echo $csv_output;
exit;