2016-10-01 217 views
1

我正在开发一个项目,该项目需要根据多个条件从MYSQL DB导出数据。我指thisCodeIgniter:将数据从数据库导出到Excel中并下载

这是我的源代码:

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); 
} 

如果我使用它没有任何where子句,它给整个表。

如果我只使用single where子句,它的效果很好。

伯,如果我使用多个条件。它给了我一张空白的Excel表格。

有没有人有任何想法如何使它与多个条件工作?

+0

你肯定有是在你的数据库适合你'多的任何数据conditions'? –

+0

显示你的位置? –

+0

用你的多个条件试试echo'$ this-> db-> last_query()',并在'database'或'phpmyadmin'中执行相同的查询并检查是否得到任何结果 – Zeeshan

回答

3

尝试使用在你的模型文件验证码:以CSV

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); 

    } 
+0

它为我工作..感谢 –

0

// ecport contect名单,

public function cnt_explode(){ 

$csvData[] =array( "Name", "Email Id","Mobile No.","Event", "City","location","No of guest","Event Date","Budget", 
        "Venue Type","Food","Drink","Description","Date"); 
$data = $this->contact_model->get_contact(NULL); 

foreach($data as $cnt){ 
$csvData[]=array(
     $cnt->name ,$cnt->email, $cnt->mobile_no, $cnt->event, $cnt->city, $cnt->location, $cnt->no_guest,$cnt->event_date,$cnt->budget, $cnt->venue_type, 
     $cnt->food, $cnt->drink, $cnt->description,$cnt->created_on, 
    ); 
} 

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download"); 
header("Content-Disposition: attachment;filename=venuexpo_".time().".csv"); 
header("Content-Transfer-Encoding: binary"); 
$df = fopen("php://output", 'w'); 
array_walk($csvData, function($row) use ($df) { 
    fputcsv($df, $row); 
}); 
fclose($df); 
} 

///------------ downlode csv done --------------