私は codeigniter を使用しており、3 つの列 (id、name、parent_id) を持つテーブルがあります。カテゴリには多くのサブカテゴリを含めることができ、サブカテゴリには多くのサブサブカテゴリを含めることができます。
このコードを使用して、すべてのカテゴリとそのサブカテゴリを取得しようとしています:
public function getCategory($id)
{
$categories = array();
while($id != 0)
{
$this->db->from('categories'); //$this->table is a field with the table of categoris
$this->db->where('id', $id);
$this->db->limit(1);
$result = $this->db->get()->row(); //fetching the result
$categories[] = $result;
$id = $result->parent_id;
}
return $categories;
}
public function getAllCategories()
{
$this->db->select('id');
$this->db->from('categories'); //$this->table is a field with the table of categoris
$this->db->where('parent_id', 0);
$mainCategories = $this->db->get()->result(); //fetching the result
$result = array();
foreach($mainCategories as $id)
{
$result[] = $this->getCategory($id->id);
}
return $result;
}
しかし、それは私に 1 レベルのカテゴリのみを返します。
私の質問は、私のタスクを達成する方法です。すべてのレベルのすべてのカテゴリとサブカテゴリを取得します。