function list_categories() { $options = array(); //select all parent categories first $query = $this->db->get_where("category",array('parent' => 0)); if( $query->num_rows() <= 0 ) return ""; foreach( $query->result() as $row ) { $options[] = ""; $subquery = $this->db->get_where("category",array('parent' => $row->id )); if( $subquery->num_rows() <= 0 ) return implode("",$options); foreach( $subquery as $subrow ) { $options[] = ""; $subsubquery = $this->db->get_where("category",array('parent' => $subrow->id )); if( $subsubquery->num_rows() <= 0 ) return implode("",$options); foreach( $subsubquery as $subsubrow ) { $options[] = ""; } } } return implode("",$options); }