CodeIgniter:将数据从数据库导出到excel并下载

V15*_*M4Y 1 php mysql excel codeigniter export-to-excel

我正在开发一个项目,需要根据多个条件从MYSQL DB导出数据.我是指这个:

这是我的源代码:

public function exportExcelData($records)
{
  $heading = false;
        if (!empty($records))
            foreach ($records as $row) {
                if (!$heading) {
                    // display field/column names as a first row
                    echo implode("\t", array_keys($row)) . "\n";
                    $heading = true;
                }
                echo implode("\t", ($row)) . "\n";
            }
 }

public function fetchDataFromTable()
{
     $query =$this->db->get('one_piece_characters'); // fetch Data from table
     $allData = $query->result_array();  // this will return all data into array
     $dataToExports = [];
     foreach ($allData as $data) {
        $arrangeData['Charater Name'] = $data['name'];
        $arrangeData['Charater Profile'] = $data['profile'];
        $arrangeData['Charater Desc'] = $data['description'];
        $dataToExports[] = $arrangeData;
  }
  // set header
  $filename = "dataToExport.xls";
                header("Content-Type: application/vnd.ms-excel");
                header("Content-Disposition: attachment; filename=\"$filename\"");
  $this->exportExcelData($dataToExports);
 }
Run Code Online (Sandbox Code Playgroud)

如果我在没有任何where子句的情况下使用它,它就会给整个表格.

如果我只使用单个where子句,它的效果很好.

Bur,如果我在多个条件下使用多个.它给了我一张空白的excel表.

有没有人知道如何让它在多种条件下工作?

小智 5

尝试在模型文件中使用此代码:

function createcsv(){
        $this->load->dbutil();
        $this->load->helper('file');
        $this->load->helper('download');
        $delimiter = ",";
        $newline = "\r\n";
        $filename = "filename.csv";
        $query = "SELECT * FROM YourTable"; //USE HERE YOUR QUERY
        $result = $this->db->query($query);
        $data = $this->dbutil->csv_from_result($result, $delimiter, $newline);
        force_download($filename, $data);

    }
Run Code Online (Sandbox Code Playgroud)