啊,PHP 中父/子类别的古老问题。如果这个问题已经被问到(我知道它有多种形式),我深表歉意,但进行搜索无法具体回答如何使用一个查询和 Codeigniter 来做到这一点。
基本上,我正在使用 Codeigniter 开发一个分类网站。列表可以分配给类别。一个类别可以是独立的(没有子项),也可以有一个子项。
使用 Codeigniter 的“Active Record”功能,我得到了几乎可以工作的以下内容。
$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();
关于php - 如何在 Codeigniter 中编写类别/子类别数据库查询(一层深)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7634591/