44,13 → 44,13 |
$this->utilisateur_id = $utilisateur_id; |
return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $ids); |
} |
|
|
public function lierMotCleImg($utilisateur_id, Array $mots_cles_ids, Array $ids) { |
$this->suffix = self::IMG_TABLE_SUFFIXE; |
$this->utilisateur_id = $utilisateur_id; |
return $this->lierMotCle($utilisateur_id, $mots_cles_ids, $ids); |
} |
|
|
/** |
* Lie un mot-clé à une ou plusieurs images ou obs suivant le suffixe en cours. |
* |
62,7 → 62,7 |
$retour = false; |
|
if ($this->contenirNbresEntiers($ids)) { |
|
|
$champ_objet_lie = ($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image'; |
$champ_mot_cle = ($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_mot_cle_obs' : 'id_mot_cle_image'; |
|
69,9 → 69,9 |
// le mot clé ignore est spécifique mysql, mais il est utilisé ici pour des raisons |
// de performance, à remplacer par un test sur les mots clés déjà existant si ça gène |
$requete = "INSERT IGNORE INTO cel{$this->suffix}_mots_cles ". |
'('.$champ_objet_lie.', '.$champ_mot_cle.') '. |
'VALUES '; |
|
'('.$champ_objet_lie.', '.$champ_mot_cle.') '. |
'VALUES '; |
|
foreach($ids as $id) { |
foreach($mots_cles_ids as $mot) { |
$requete .= '('.$id.','.Cel::db()->proteger($mot).'),'; |
79,7 → 79,7 |
} |
$requete = rtrim($requete,','); |
$resultat = Cel::db()->executer($requete); |
|
|
// J'en suis ici |
if ($resultat) { |
$retour = true; |
121,13 → 121,13 |
|
private function obtenirMotsClesTexte($id_image_ou_obs) { |
$requete = 'SELECT mot_cle '. |
'FROM '.'cel_mots_cles'.$this->suffix.' '. |
'WHERE id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' IN '. |
'('. |
'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' '. |
'FROM cel'.$this->suffix.'_mots_cles '. |
'WHERE '.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image').' = '.Cel::db()->proteger($id_image_ou_obs). |
')'; |
'FROM '.'cel_mots_cles'.$this->suffix.' '. |
'WHERE id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' IN '. |
'('. |
'SELECT id_mot_cle_'.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'obs' : 'image').' '. |
'FROM cel'.$this->suffix.'_mots_cles '. |
'WHERE '.(($this->suffix == self::OBS_TABLE_SUFFIXE) ? 'id_observation' : 'id_image').' = '.Cel::db()->proteger($id_image_ou_obs). |
')'; |
|
$resultats = Cel::db()->requeter($requete); |
return $resultats; |
144,8 → 144,14 |
private function concatenerMotsCles(Array $mots_cles) { |
$mot_cles_concatenes = ''; |
if (count($mots_cles) > 0) { |
$dedoublonage = array(); |
foreach ($mots_cles as $mot_cle) { |
$mot_cles_concatenes .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE; |
if (array_key_exists($mot_cle['mot_cle'], $dedoublonage) === false) { |
$dedoublonage[$mot_cle['mot_cle']] = 1; |
$mot_cles_concatenes .= $mot_cle['mot_cle'].self::SEPARATEUR_MOT_CLE_TEXTE; |
} else { |
$dedoublonage[$mot_cle['mot_cle']]++; |
} |
} |
} |
$mot_cles_concatenes = rtrim($mot_cles_concatenes, self::SEPARATEUR_MOT_CLE_TEXTE); |