我的表[cat_id,title,pid]
。我需要以下列格式获取所有子子类别ID:
[1] =>Array ( [cat_id] => 2 [title] => TEST [pid] => 1 ),
[2] =>Array ( [cat_id] => 3 [title] => TEST [pid] => 1 ),
[3] =>Array ( [cat_id] => 4 [title] => TEST [pid] => 2 ),
[4] =>Array ( [cat_id] => 5 [title] => TEST [pid] => 3 )
目的 - 使用孩子的ID,获取所有这些项目。
我尝试按照以下代码执行某些操作,但它不起作用:
public function get_ids($tree,$cid = 0)
{
$data = $this->db->select('cat_id, title, pid')
->where('pid',$cid)
->get('catalog');
$result = array_push($tree,$data->result_array());
if($data->num_rows() > 0){
foreach ($data->result_array() as $r) {
return $this->get_ids($result,$r['cat_id']);
}
}
else{
return $result;
}
}
也许有更好的方法?
答案 0 :(得分:-1)
尝试以下代码,按给定的父ID获取所有子ID。
function fnGetChildCatelogs($id) {
$qry = "SELECT cat_id FROM catalog WHERE pid = $id";
$rs = mysql_query($qry);
$arrResult = array();
if(mysql_num_rows($rs) > 0) {
# It has children, let's get them.
while($row = mysql_fetch_array($rs)) {
# Add the child to the list of children, and get its subchildren
$arrResult[$row['cat_id']] = fnGetChildCatelogs($row['cat_id']);
}
}
return $arrResult;
}