Bonjour tout le monde
je voulais vous présenter mon problème en l'attente que quelqu'un puisse m'aider.Je sais que mon message est relativement long mais c'est pour que vous comprenez de quoi il s'agit exactement.
Dans ma base SQL j'ai 2 tables "post" et "job" dont les structures:
la table job:
j'ai une fonction dans mon modèle 'jobDao'`job_id` int(11) NOT NULL,
`job_parent` varchar(45) CHARACTER SET utf8 DEFAULT NULL,
`job_description` text CHARACTER SET utf8,
`job_label` varchar(45) CHARACTER SET utf8 DEFAULT NULL,
`job_insert_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`job_status` tinyint(1) DEFAULT NULL
et la table post:
`post_id` int(11) NOT NULL AUTO_INCREMENT,
`post_company` int(11) NOT NULL COMMENT ' ',
`post_responsable` int(11) NOT NULL,
`post_commercial` int(11) NOT NULL,
`post_job` int(11) NOT NULL,
`post_title` varchar(255) CHARACTER SET utf8 NOT NULL
KEY `post_job` (`post_job`)
Avec 'post_job' est une clé étrangère de la table job.
Et un autre dans le modèle postDao:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 public function getParent(){ $this->load->model("PostDao"); $job_list = array(); $query = $this->db->query("SELECT * FROM job WHERE job_parent = 0"); $result = $query->result(); foreach($result as $job){ $job->post_number = $this->PostDao->getNbPostJob($job->job_id); $job_list[$job->job_id] = $job; } foreach($job_list as $job_id=>$post_number){ sort($job_list, $job_list[$post_number]); } return $job_list; }
La fonction dans le controller est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public function getNbPostJob($job = NULL){ $query = "SELECT post_id FROM post WHERE post_job =".$this->db->escape($job); return $this->db->query($query)->num_rows; }
lorsque je fait un "print_r($list_job);", le résultat affiché dans le navigateur est le suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public function index(){ $this->load->model('PostDao'); $this->load->model('JobDao'); $list_job = $this->JobDao->getParent(); $data["list_job"] = $list_job; $this->template->set_template('site'); $this->template->write_view('main', "site/home", $data); $this->template->render(); }
Maintenant je veut trier ce résultat suivant la colonne 'post_number' et je n'ai pas trouvé l'astuce.Array ( [0] => stdClass Object ( [job_id] => 1 [job_parent] => 0 [job_description] => [job_label] => Agro-Alimentaire [job_insert_time] => 2011-07-24 13:07:40 [job_status] => 1 [post_number] => 1 ) [1] => stdClass Object ( [job_id] => 14 [job_parent] => 0 [job_description] => [job_label] => Automobile [job_insert_time] => 2011-07-24 13:07:40 [job_status] => 1 [post_number] => 1 ) [2] => stdClass Object ( [job_id] => 19 [job_parent] => 0 [job_description] => [job_label] => Banque-Assurances-Immo [job_insert_time] => 2011-07-24 13:07:40 [job_status] => 1 [post_number] => 3 ) [3] => stdClass Object ( [job_id] => 57 [job_parent] => 0 [job_description] => [job_label] => Be-Methodes-Qualite [job_insert_time] => 2011-07-24 13:07:40 [job_status] => 1 [post_number] => 3 ))
Partager