Codeigniter-导出到CSV问题

时间:2017-12-13 18:51:55

标签: php mysql codeigniter

我很惊讶使用codeigniter从数据库导出数据。非常感谢帮助。

这是我对此问题的查看代码。

<?php echo form_open(base_url('admin/consignment1/test_con'),  
$hiddenFields, 'class="form-horizontal"');  ?>

<td><input type="submit" name="id" value="<?php echo $row['Con_No']; ?>" 
class="btn btn-info pull-left"> </td>

控制器

public function test_con(){
    $var= $this->input->post('id');
    $data['get_con_by'] = $this->consignment_model->get_con_by($var);
    $data['view']='admin/consignment1/con_table';
    $this->load->view('admin/layout', $data);
}

模型

public function get_con_by($var){

    $this->db->from('consignment');
    $this->db->where('Con_No',$var);
    $query=$this->db->get();
    return $result = $query->result_array();
}

在我的视图中显示数据没有问题。当我尝试使用其他功能从模型导出数据时,我得到我的CSV与空数据。这是我在同一型号的控制器上的功能。

public function exportCSV(){
    // file name

    $filename = 'Con_'.date('Ymd').'.csv';
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=$filename");
    header("Content-Type: application/csv; ");

    // get data
    $usersData = $this->consignment_model->get_con_by($var);

    // file creation
    $file = fopen('php://output', 'w');

    $header = array("ste","Name","Gender","Email");
    fputcsv($file, $header);
    foreach ($usersData as $key=>$line){
        fputcsv($file,$line);
    }
    fclose($file);
    exit;
}

我有另一个模特

public function get_all_pins(){
    $query = $this->db->get('consignment');
    return $result = $query->result_array();
}

我导出到CSV

没有问题

两个scnerio之间的区别是

$usersData = $this->consignment_model->get_con_by($var); // Not working

$usersData = $this->consignment_model->get_all_pins(); // working one.

你能帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

要获得查询的答案,请检查使用

生成的查询
$this->db->last_query()

签入生成的查询。它是否与您期望的相同或有任何问题?您可以在phpmyadmin中交叉验证同一查询的输出。

我预见到的唯一问题是生成的查询不会返回任何数据/输出,或者在执行查询时可能会出错。第二个预期较少。但以这种方式调试将帮助您解决实际问题。