2011-03-24 60 views
2

我目前有一個報告,給我的用戶ID號碼和他們的電子郵件地址,但我想這樣做在一個CSV文件,而不是像我現在有的表和行。輸出查詢到CSV,codeigniter

這是我的控制器

function View_Email_E() 
{ 
$data = array(); 

    if($query = $this->report_model->View_Email_English()) 
    { 
     $data['records'] = $query; 
    } 
$data['main_content'] = 'view_all_email_english'; 
$this->load->view('includes/template', $data); 


} 

這是我的模型

function View_Email_English() 
{ 

    $query = $this->db->where(array('Dial_Up' => '0', 'Language' => 'English', 'Membership_Status' => 'Active')); 
    $query = $this->db->like('Email', '@'); 
    $query = $this->db->get('Membership'); 
    return $query->result(); 
} 

出於某種原因,我的視圖沒有在代碼模式中被示出,但它是使用這些此代碼段的自動生成的表的代碼。每行從數據庫中返回ID和Email。

<?php if(isset($records)) : foreach($records as $row) : ?> 

如何使用ID和電子郵件字段創建CSV文件?

感謝

回答

1

我想你可以使用csv_from_result功能dbutil做到這一點。嘗試是這樣的:

$csvContent = $this->dbutil->csv_from_result($query); 

if (! write_file('./path/to/file.csv', $csvContent)) { 
    echo 'Unable to write the file'; 
} else { 
    echo 'File written!'; 
}  

http://codeigniter.com/user_guide/database/utilities.html#csv

+0

我怎樣才能得到這個自動下載? – JonYork 2011-03-24 15:43:43

+2

您可以使用這個:http://codeigniter.com/user_guide/helpers/download_helper.html – JWC 2011-03-24 15:51:49

+0

我應該在哪裏放置$ csvContent代碼?在模型或控制器? – JonYork 2011-03-24 16:04:42

1

添加

$this->db->select(array('ID','Email')); 

要將View_Email_English功能。