2016-10-01 5 views
1

Я работаю над проектом, который требует экспорта данных из базы данных MYSQL в зависимости от множества условий. Я имею в виду this:CodeIgniter: Экспорт данных из базы данных в 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, оно работает хорошо.

Bur, если я использую несколько условий, где условия. это дает мне чистый лист превосходства.

Есть ли у кого-нибудь идеи относительно того, как заставить его работать с множеством условий?

+0

Вы уверены, что там вы какие-либо данные в вашей БД, который соответствует вашим 'множественным conditions'? –

+0

показать, где ваше условие? –

+0

Попробуйте выполнить echo '$ this-> db-> last_query()' с несколькими условиями и выполните один и тот же запрос в вашей базе данных или 'phpmyadmin' и проверьте, получаете ли вы какие-либо результаты. – Zeeshan

ответ

3

Попробуйте использовать этот код на файл модели:

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 в CSV,

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 -------------- 
Смежные вопросы