I have the following table.
CREATE TABLE IF NOT EXISTS `omc_schedule` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`trainer_id` int(11) NOT NULL,
`course` varchar(255) NOT NULL,
`capacity` int(11) NOT NULL,
`active` tinyint(1) NOT NULL DEFAULT '1',
`parentid` int(10) NOT NULL,
`order` int(11) NOT NULL,
`booked` int(5) NOT NULL,
`type` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ...
I can use the following function to generate an array tree.
function generateTree(&$tree, $parentid = 0) {
$this->db->select('*');
$this->db->where ('parentid',$parentid);
$this->db->where ('active','1');
$this->db->order_by('order asc, parentid asc');
$res = $this->db->get('omc_schedule');
if ($res->num_rows() > 0) {
foreach ($res->result_array() as $r) {
// push found result onto existing tree
$tree[$r['id']] = $r;
// create placeholder for children
$tree[$r['id']]['children'] = array();
// find any children of currently found child
$this->generateTree($tree[$r['id']]['children'],$r['id']);
}
}
$res->free_result();
return $tree;
}
Now I want to join to a trainer table to get trainer's name.
CREATE TABLE IF NOT EXISTS `omc_trainer` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`trainer_name` varchar(50) NOT NULL,
`trainer_image` varchar(100) NOT NULL,
`video_url` text NOT NULL,
`desc` text NOT NULL,
PRIMARY KEY (`id`)
)
Now I tried to join in different ways, but I am not able to get trainer's name in every array.
Is there any way I can use JOIN to get trainer's name in a recursive function?
Above function is CodeIgniter, but please ignore it.
Thanks in advance.