gpt4 book ai didi

php - MySQL 查询根据两个不同表中的值选择一个表。

转载 作者:行者123 更新时间:2023-11-29 19:05:33 30 4
gpt4 key购买 nike

我一直在从事 codeigniter 项目。

这是我的表格

category
cid cname
5 general
6 science
7 math

books
bid bname
12 first
13 second
14 third
15 fourth
16 fifth
17 sixth

dir
id bid cid
1 12 5
2 13 6
3 14 7
4 15 6
5 16 5
6 17 5

我想显示为

general 3
science 2
math 1

我在模型中使用以下函数代码完成了此操作

function category_details(){
$this->db->order_by('cname','asc');
$query=$this->db->query('Select category.cid,category.cname,count(dir.cid) from dir join category on category.cid=dir.cid join books on dir.bid=books.bid group by category.cname');
return $query->result_array();
}

现在我想创建一个链接来打开每个类别并显示其中的书籍。

这就是我尝试做到这一点的方法,

View
<a href="<?php echo site_url('category/books/'.$val['cid']);?>">Open</a>

Controller
public function books($cid){

$data['books']=$this->books_model->get_books($cid);

$this->load->view('header',$data);
$this->load->view('category_books',$data);
$this->load->view('footer',$data);

}

Model
function get_books($cid){
$this->db->where('dir.cid',$cid);
$query=$this->db->query('select * from books join dir on books.bid=dir.bid join category on dir.cid=category.cid');
return $query->result_array();
}

但这会导致选择所有书籍,而不是根据我传递的 $cid (尽管我可以看到 $cid 在网址中传递)。

非常感谢任何帮助。

最佳答案

尝试这个查询:

function category_details(){
$query=$this->db->query('select c.cname, count(d.cid) as total from category as c join dir as d ON c.cid=d.cid group by d.cid order by total DESC');
return $query->result_array();
}

关于php - MySQL 查询根据两个不同表中的值选择一个表。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43543754/

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