gpt4 book ai didi

php - 如何从 codeigniter 中的三个表中检索数据以获得完整 View

转载 作者:行者123 更新时间:2023-11-29 06:28:03 24 4
gpt4 key购买 nike

我是 codeigniter 和 php 的新手。我的DB 中有两个表,我需要做的是从表user_details、user_comments 中检索数据。

user_details 的

id 与 user_comments 中的 id_user 相同。

我想在我的 View 中显示一些输出,因为没有条件,我需要所有用户列表,其中包含 first_name,last_name from user_detailsnumber of comment by user from comm_id .

        public function user_details(){

$query=$this->db->select('id, f_name, l_name')
->from('user_details');

$array=array();

foreach($query->result() as $row)
{
$id=$row->id;
$array['f_name']=$row->f_name;
$array['l_name']=$row->l_name;
$query1=$this->db->select('comments')
->from('user_comments')
->where('id_user',$id);
foreach($query1->result() as $row1){

$array['comments'] = COUNT($row->comments;


}


}


return $array;


}

我需要帮助请帮助我...

最佳答案

您不想运行 N+1 个查询。您可以通过查询一次获取所有必要的数据

SELECT u.id, u.f_name, u.l_name, COUNT(c.id_user) comments_count
FROM user_details u LEFT JOIN user_comments c
ON u.id = c.id_user
GROUP BY u.id, u.f_name, u.l_name

示例输出:

| id | f_name | l_name | comments_count ||----|--------|--------|----------------||  1 |   John |    Doe |              4 ||  2 |   Jane |    Doe |              2 |

Here is a SQLFiddle demo

Recommended reading:


In Codeigniter this translates to something along the lines of

public function user_details() 
{
$rows = $this->db
->select('u.id', 'u.f_name', 'u.l_name')
->select('COUNT(c.id_user) AS comments_count', FALSE)
->from('user_details AS u')
->join('user_comments AS c', 'u.id = c.id_user', 'left')
->group_by('u.id', 'u.f_name', 'u.l_name')
->get()
->result_array();

return $rows;
}

关于php - 如何从 codeigniter 中的三个表中检索数据以获得完整 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29722641/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com