【问题标题】:Changing csv export header from default database header从默认数据库标题更改 csv 导出标题
【发布时间】:2015-03-24 15:18:28
【问题描述】:

此代码位于我的模型文件夹下。这应该从数据库中获取详细信息并生成它的 csv 报告。如何更改导出的第一行?第一行是 aud_id、aud_datetime 等,这是字段的数据库名称。如何自定义?

public function get_by_hardware($har_barcode)
    {
        $this->db->join('hardware_asset', "hardware_asset.har_barcode = {$this->table}.aud_har");               
        $this->db->join('employee', "employee.emp_id = {$this->table}.aud_per", "left outer");
        $this->db->where('aud_har', $har_barcode);  
        //$this->db->where('aud_per', null);
        $this->db->order_by("aud_id","desc");
        $query = $this->db->get($this->table); // 
        return $query;

    }

感谢所有帮助。谢谢!

【问题讨论】:

  • as 子句与选择一起使用。这将替换列名。
  • 您的代码显示了如何从数据库中获取数据。如果要更改 csv 的第一行,我会在生成 csv 的地方进行更改,只需添加第一行,然后添加数据库中的数据数据。也许您可以向我们展示生成 csv 的代码?
  • @Mario A,是的,这会起作用,但如果 sql 会改变怎么办?你必须一次又一次地改变你的标题......最好改变一个地方而不是两个。

标签: php mysql sql codeigniter csv


【解决方案1】:

别名 => as 是你要找的,如果你这样写sql:

SELECT col1 as myNameForCol1, col2 as myNameForCol2 ... FROM ...

那么你应该得到你需要的东西。正如我所见,您正在使用某种查询生成器,因此您可能必须执行以下操作:

$this->db->select(array('col1Name'=> 'aliasForCol1', ...));

【讨论】:

    【解决方案2】:

    您可以直接在您的 select 语句中使用 MySQL 列别名来格式化输出。

    例子:

    $this->db->select('column1 AS `Custom Column 1`, column2 AS `Custom Column 2`');
    

    但是,您必须指定要在语句中选择的所有列。

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-07
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多