0

こんにちは、このクエリとして MYSQL で作業するようになりましたが、これを Codeigniter Active レコードに変換したいと考えています。

基本的に私は3つのテーブルを持っています

  • サプライヤー (intCat、intCity、*)
  • カテゴリ (intId、strCategory、intParent を使用)
  • tblcitylist( with city_id, city_name)

クエリ:

SELECT category.strCategory AS strParent, Query3. *  FROM (

SELECT tblcitylist.city_name AS strCity, Query2. *  FROM (

SELECT Query1.intParent, Query1.strCategory, suppliers. *  FROM (

SELECT category.strCategory, category.intId, category.intParent FROM
category WHERE ( ( ( category.intParent ) =51 ) ) ) AS Query1 INNER
JOIN suppliers ON Query1.intId = suppliers.intCat ) AS Query2 INNER
JOIN tblcitylist ON Query2.intCity = tblcitylist.city_id ) AS Query3
INNER JOIN category ON Query3.intParent = category.intId

親カテゴリー(51)のすべての子カテゴリーからサプライヤー(カテゴリーと親カテゴリー名(strCategory、strParent)と都市名(strCityとしてのcity_name))を取得したいと考えています。

前もって感謝します。

4

1 に答える 1

1

これは、パスの親 ID によって、parent 、そのカテゴリおよびサブカテゴリを返します

function get_parent_child_subchild($category_id,$all_cate=array())
{
    if(!is_array($category_id))
    {           
        $this->db->where('parent_id', $category_id);
        $all_cate[]=$category_id;
    }
    else
    {           
        $this->db->where_in('parent_id', $category_id);
    }        
    $get_categories= $this->db->get('newcategory'); 
    if($get_categories->num_rows()>0)
    {
        $categories_vales=$get_categories->result(); 
        $new_subcat = array();
        foreach($categories_vales as $cate_val)
        {
            $category_id=$cate_val->category_id;
            array_push($new_subcat,$category_id);
        }
        $all_cate = array_merge($all_cate,$new_subcat);         
        if(count($new_subcat)>0)
        {
            $this->get_parent_child_subchild($new_subcat,$all_cate);
        }   
    }   

    return $all_cate;
}
于 2016-03-09T10:33:55.970 に答える