输出查询到csv,codeigniter

时间:2011-03-24 15:27:06

标签: mysql codeigniter csv

我目前有一份报告,它会向我提供用户ID号和他们的电子邮件地址,但我想将其设置为CSV文件而不是像我目前所拥有的表和行。

这是我的控制器

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和电子邮件。

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

如何使用ID和电子邮件字段制作CSV文件?

由于

2 个答案:

答案 0 :(得分:1)

我认为您可以使用dbutil中的csv_from_result函数来执行此操作。尝试这样的事情:

$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

答案 1 :(得分:1)

添加

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

到您的View_Email_English功能。