Rev 2068 | Blame | Compare with Previous | Last modification | View Log | RSS feed
<?phpclass Dao extends Bdd {private $mode;private $table_liaison;private $table_mots_cles;private $champ_id_element_lie;public function __construct($mode) {parent::__construct();$this->mode = $mode;if($mode == 'obs') {$this->table_liaison = 'cel_mots_cles_obs_liaison';$this->table_mots_cles = 'cel_arbre_mots_cles_obs';} else {$this->table_liaison = 'cel_mots_cles_images_liaison';$this->table_mots_cles = 'cel_arbre_mots_cles_images';}}public function viderTables() {$requete = "TRUNCATE ".$this->table_mots_cles." ";$vidage = $this->requeter($requete.' -- '.__FILE__.':'.__LINE__);$requete = "TRUNCATE ".$this->table_liaison." ";$vidage = $this->requeter($requete.' -- '.__FILE__.':'.__LINE__);return $vidage;}public function obtenirMotsClesOriginaux() {if($this->mode == 'obs') {$requete_arbre = "SELECT id_mot_cle_obs as id_mot_cle, ce_mot_cle_obs_parent as parent, id_utilisateur, mot_cle "."FROM cel_mots_cles_obs WHERE niveau != 0 AND id_utilisateur != '' ORDER BY id_utilisateur, niveau";} else {$requete_arbre = "SELECT id_mot_cle_image as id_mot_cle, ce_mot_cle_image_parent as parent, id_utilisateur, mot_cle "."FROM cel_mots_cles_images WHERE niveau != 0 AND id_utilisateur != '' ORDER BY id_utilisateur, niveau";}$mots_cles = $this->recupererTous($requete_arbre);return $mots_cles;}public function obtenirLiaisonsMotsClesOriginaux() {if($this->mode == 'obs') {$requete_liaisons = "SELECT comc.id_observation as id_element_lie, comc.id_mot_cle_obs as id_mot_cle, id_utilisateur as id_utilisateur "."FROM cel_obs_mots_cles comc "."INNER JOIN cel_obs o ON o.id_observation = comc.id_observation ";} else {$requete_liaisons = "SELECT comc.id_image as id_element_lie, comc.id_mot_cle_image as id_mot_cle, o.ce_utilisateur as id_utilisateur "."FROM cel_images_mots_cles comc "."INNER JOIN cel_images o ON o.id_image = comc.id_image ";}$liaisons = $this->recupererTous($requete_liaisons);return $liaisons;}public function insererMotsCles($mots_cles) {$requete_insertion_mots_cles = "INSERT INTO ".$this->table_mots_cles." (chemin, id_utilisateur, mot_cle) "." VALUES ";foreach($mots_cles as $cle => $mot_cle) {$requete_insertion_mots_cles .= "(".$this->proteger($mot_cle['chemin']).", ".$this->proteger($mot_cle['id_utilisateur']).", ".$this->proteger($mot_cle['mot_cle'])." "."), ";}$requete_insertion_mots_cles = rtrim($requete_insertion_mots_cles, ", ");return $this->requeter($requete_insertion_mots_cles);}public function obtenirInfosNouveauxMotsCles() {$requete = "SELECT id_mot_cle, id_utilisateur, chemin FROM ".$this->table_mots_cles;return $this->recupererTous($requete);}public function insererLiaisonsMotsCles($mots_cles, $liaisons, $correspondances) {$requete_insertion_liaisons = "INSERT INTO ".$this->table_liaison." (id_element_lie, id_mot_cle) "." VALUES ";$lier = false;$mot_cles_inexistants = 0;foreach($liaisons as &$liaison_mot_cle) {$cle = $liaison_mot_cle['id_mot_cle'].'-'.$liaison_mot_cle['id_utilisateur'];if(isset($mots_cles[$cle])) {$cle_id_mot_cle_migre = $mots_cles[$cle]['chemin'].'-'.$liaison_mot_cle['id_utilisateur'];if(isset($correspondances[$cle_id_mot_cle_migre])) {$id_mot_cle_migre = $correspondances[$cle_id_mot_cle_migre]['id_mot_cle'];$requete_insertion_liaisons .= "(".$this->proteger($liaison_mot_cle['id_element_lie']).", ".$this->proteger($id_mot_cle_migre)." "."), ";$lier = true;} else {$mot_cles_inexistants++;}}}if($lier) {$requete_insertion_liaisons = rtrim($requete_insertion_liaisons, ", ");$this->requeter($requete_insertion_liaisons);}if($mot_cles_inexistants != 0) {echo $mot_cles_inexistants."\n";}}}