【问题标题】:Codeigniter custom output array from query来自查询的 Codeigniter 自定义输出数组
【发布时间】:2012-02-17 02:02:56
【问题描述】:

我的模型中有一个函数,用于从数据库中选择项目并将其作为数组返回。我的问题是,如何手动创建数组,以便例如更改日期格式?

这是我所拥有的:

$sql = 'SELECT * FROM prayer_requests ORDER BY id DESC';
        $query = $this->db->query($sql);

        if($query->num_rows() > 0) return $query->result();
        else return FALSE;

我猜我需要某种循环?我知道它一定很简单,但不知道具体怎么做。

【问题讨论】:

    标签: database arrays codeigniter loops model


    【解决方案1】:

    如果你想得到一个数组的结果,你可以使用result_array()而不是result()。 您可以在此处阅读有关使用 CodeIgniter 生成结果的更多信息:http://codeigniter.com/user_guide/database/results.html

    例如:

    $query = $this->db->query("YOUR QUERY");
    $rows = $query->result_array(); // $rows is now an array containing all the rows from the query result
    

    编辑: 如果要在将数据放入数组之前对其进行修改。你需要一个循环,在循环中,使用任何必要的函数来改变你想要的数据。然后将其分配回循环变量,并将其附加到一个数组(在循环之前已经初始化)。

    $rows = array();
    foreach($query->result_array() as $row)
    {
        $row['some_key'] = change_data($row['some_key');
        $rows[] = $row;
    }
    

    【讨论】:

    • 我意识到了这一点,但是如何在数据放入数组之前对其进行修改?
    • 看起来不错,但遇到了一些问题。我在这里做错了吗? foreach($query->result_array() as $row) { $row['date'] = standard_date("DATE_ISO8601", $row['date'); $rows[] = $row; } 返回 $rows;
    • @Adam 你的代码对我来说看起来不错。但是你能解释一下有什么问题吗?它不返回任何东西吗?或者可能有错误消息?还有,$row['date']的原始内容是什么?请记住,standard_date() 的第二个参数必须是 Unix 时间戳。
    • 我只是得到一个空白的白色屏幕,这意味着有东西坏了。我用这个替换了日期格式: $row['content'] = "hey";我仍然得到一个空白屏幕:/
    • 已修复!!我不得不用 $row->date 替换 $row['date']。再次感谢!
    【解决方案2】:

    第一件事:你的模型会返回结果,控制器会做这项工作,例如:

    //Picking data
    $this->data['resultados']           = $this->outros_detalhes_model->consulta();
    $rows = array();
    
    //Running all data, modifying whatever you need
    foreach($this->data['resultados'] as $row){
       $row->CT_TIPO = $this->funcoes->mostra_tipo_detalhe($row->CT_TIPO);
       $rows[] = $row;
    }
    
    //Sending data to view
    $this->data['resultados'] = $rows;
    $this->load->view('includes/estrutura',$this->data);
    

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2019-10-31
      相关资源
      最近更新 更多