繁体   English   中英

如何在Codeigniter中编码类别/子类别数据库查询(深入一层)?

[英]How Can I Code A Category / Sub Category Database Query (One Level Deep) In Codeigniter?

啊,PHP中父/子类别的古老问题。 我很抱歉是否已经问过这个问题(我知道它有很多形式),但是进行搜索无法具体回答如何使用一个查询和Codeigniter来做到这一点。

基本上,我正在使用Codeigniter开发分类广告网站。 列表可以分配给一个类别。 类别可以是独立的(无子级),也可以有一个子级。

使用Codeigniter的“活动记录”功能,我可以执行以下操作。

$this->db->select('l.*');
$this->db->select('c.cat_parent, c.cat_slug, c.cat_name, c.cat_description, c.cat_display');
$this->db->select('c2.cat_slug AS parent_cat_slug, c2.cat_name AS parent_cat_name, c2.cat_description AS parent_cat_description, c2.cat_display AS parent_cat_display');

$this->db->limit($limit, $offset);

$this->db->join('listing_status ls', 'ls.status_id = l.listing_status');
$this->db->join('categories c', 'c.cat_id = l.listing_category');
$this->db->join('categories c2', 'c2.cat_parent = c.cat_id');

return $this->db->get('listings l')->result();

我希望能够提取一个清单,它是分配的类别,如果清单所属的该类别有一个父类别,则还要获取该父类别的详细信息。 我添加了2个联接,它应该可以正常工作,我错过了什么吗?

经过一番混乱之后,我意识到我的第二次加入是错误的。 这是我更新后的有效代码,希望对您有所帮助。

$this->db->select('l.*');
$this->db->select('c.cat_parent, c.cat_slug, c.cat_name, c.cat_description, c.cat_display');
$this->db->select('pc.cat_slug AS parent_cat_slug, pc.cat_name AS parent_cat_name, pc.cat_description AS parent_cat_description, pc.cat_display AS parent_cat_display');

$this->db->limit($limit, $offset);

$this->db->join('listing_status ls', 'ls.status_id = l.listing_status');
$this->db->join('categories c', 'c.cat_id = l.listing_category');
$this->db->join('categories pc', 'pc.cat_id = c.cat_parent');

return $this->db->get('listings l')->result();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM