【问题标题】:How can I write subqueries in codeigniter on view page?如何在视图页面上的 codeigniter 中编写子查询?
【发布时间】:2018-02-24 04:49:36
【问题描述】:

我是 Codeigniter 的新手。在其中进行查询时遇到问题。如何在 codeigniter 的视图页面中编写以下查询?

select *
  from registration_status
 where registtration_card_id = (select Max(registration_card_id)
                                  from registration_status
                                 where registration_id = 67);

registration_card_id 自动递增,registration_id 从注册表中获取。

【问题讨论】:

标签: php sql codeigniter


【解决方案1】:

试试这个

$this->db->select("*")
    ->from("registration_status")
    ->where("registtration_card_id = (select Max(registration_card_id) from registration_status where registration_id = 67 )",false,false)
            ->get()->result();

这是使用活动记录

【讨论】:

    【解决方案2】:

    不,不,不。

    首先,您不会在 CodeIgniter 的视图页面中编写查询。

    必须在 Model 中完成,这就是 CI 是 MVC 框架的原因。

    第二,可以利用数据库视图。如果您使用的是 MySQL,您可以创建一个类似的视图:

    CREATE VIEW last_card_id AS
    select * 
    from registration_status
    

    第三,你可以先使用聚合函数而不使用子查询,这样View就已经包含了基于registration_id的最大registration_card_id。所以我们编辑上面的视图:

    CREATE VIEW last_card_id AS
    selet max(registration_card_id) as 'max_id'
    from registration_status
    group by registration_id
    

    然后在你的模型文件中你可以调用模型:

    public function get_max_card_id($registration_id){
        $this->db->where('registration_id',$registration_id);
        return $this->db->get('last_card_id')->row_array();
    }
    

    然后在你的控制器中:

    public function max_card(){
        $data['registration'] = $this->registration_model->get_max_card_id($registration_id);
        $this->load->view('view_page',$data);
    }
    

    在视图文件中:

    <?php echo $registration['max_id'];?>
    

    【讨论】:

    • 感谢您的回复。
    【解决方案3】:

    您需要将 CI 实例加载到视图中。只需按照步骤操作

    $ci = & get_instance();
    $ci->db->query("Your custome query");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-08
      • 2011-03-06
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2021-02-06
      相关资源
      最近更新 更多