Professional CodeIgniter

(singke) #1

Chapter 5: Building a Shopping Cart


134


function getCategoriesNav(){
$data = array();
$this- > db- > select(‘id,name,parentid’);
$this- > db- > where(‘status’, ‘active’);
$this- > db- > orderby(‘parentid’,’asc’);
$this- > db- > orderby(‘name’,’asc’);
$this- > db- > groupby(‘parentid,id’);
$Q = $this- > db- > get(‘categories’);
if ($Q- > num_rows() > 0){
foreach ($Q- > result() as $row){
if ($row- > parentid > 0){
$data[0][$row- > parentid][‘children’][$row- > id] = $row- > name;
}else{
$data[0][$row- > id][‘name’] = $row- > name;
}
}
}
$Q- > free_result();
return $data;
}

Running a print_r() on the data from this function reveals the structure of your new navigation array.
As you can see, everything is neatly packed away in three levels. First there is level 0, or the top of the
tree. Then come levels 7 and 8 (the categories “ clothes ” and “ fun ” ), each with their own children.
The children each have their own IDs and names stored properly.

Array
(
[0] = > Array
(
[7] = > Array
(
[name] = > clothes
[children] = > Array
(
[4] = > dresses
[3] = > pants
[2] = > shirts
[1] = > shoes
)
)

[8] = > Array
(
[name] = > fun
[children] = > Array
(
[6] = > games
[5] = > toys
)
)
)
)
Free download pdf