2011-03-24 59 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功能。