我需要将MySQL查询的结果导出到codeigniter中的csv文件中。
这是一个模型:
public function export_csv()
{
$this->load->dbutil();
$this->load->helper('file');
$this->load->helper('download');
$delimiter = ",";
$newline = "\r\n";
$file_name = 'BVN_REPORTS'.date("Y-m-d h-i-s").'.csv';
$query = 'SELECT account_name as "Account Name",
api_account_name as "Verified Name",
account_num "Account Number",
bvn "Bank Verification Number (BVN)", bank_name as "BANK NAME"
from ew_employees where bvn is not null
ORDER BY bank_name ';
$result = $this->db->query($query);
$data = $this->dbutil->csv_from_result($result, $delimiter, $newline);
if(force_download($filename, $data)){
echo 'Done';
}
else {echo 'Not Done';}
}这是控制器:
public function get_csv()
{
$this->load->model('employees_model');
$this->employees_model->export_csv();
}结果总是“未完成”...如何强制csv下载查询results.Thanks?
发布于 2017-03-02 15:35:13
根据问题的标题,让我来回答question.Generally,它可能会帮助其他人访问这里。在将数据导出到csv时,我通常会执行的操作。
function data_to_csv($data, $headers = TRUE, $filename= "")
{
if ( ! is_array($data))
{
show_error('invalid Data provided');
}
$array = array();
if ($headers)
{
$array[] = array_keys($data[0]);
}
foreach ($data as $row)
{
$line = array();
foreach ($row as $item)
{
$line[] = $item;
}
$array[] = $line;
}
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=\"$filename".".csv\"");
header("Pragma: no-cache");
header("Expires: 0");
$handle = fopen('php://output', 'w');
foreach ($array as $array) {
fputcsv($handle, $array);
}
fclose($handle);
exit;
}发布于 2017-04-05 17:22:27
控制器
$result = $this->registration_model->exportToCsv();
header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=\"application".".csv\"");
header("Pragma: no-cache");
header("Expires: 0");
$handle = fopen('php://output', 'w');
fputcsv($handle, array('Sr No.', 'Apply for', 'Name', 'mobile', 'email_id', 'work_experinece', 'pan', 'refrence', 'pro_img1', 'pro_img2', 'created_at'));
$i = 1;
foreach ($result as $data) {
fputcsv($handle, array($i, $data["apply_for"], $data["full_name"], $data["mobile"], $data["email_id"], $data["work_experinece"], $data["pan"], $data["refrence"], $data["pro_img1"], $data["pro_img2"], $data["created_at"]));
$i++;
}
fclose($handle);
exit;模型
$this->db->select("apply_for,full_name,mobile,address,email_id,work_experinece,pan,refrence,pro_img1,pro_img2,created_at");
$this->db->order_by("app_id", "DESC");
$this->db->from("tablename");
$query = $this->db->get();
return $query->result_array();发布于 2021-01-28 21:14:29
我在Abdul Manan的答案中添加了一行来处理UTF-8字符:
foreach ($array as $array) {
fputs($handle, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
fputcsv($handle, $array);
}https://stackoverflow.com/questions/36572428
复制相似问题