29,7 → 29,8 |
'taxon' => 'b.nom_ret', |
'commentaire' => 'c.ci_meta_comment', |
'date' => 'c.ci_meta_date', |
'tag' => 'mots-cles'); |
'tag' => 'tag', |
'projet' => 'projet'); |
|
/** |
* Méthode appelée avec une requête de type GET. |
401,7 → 402,7 |
$requete .= $this->creerSousRequeteRechercheParCriteres($criteres); |
} |
} |
$requete = rtrim($requete,' AND ) '); |
$requete = str_replace(' AND ) ',' ', $requete); |
$requete = rtrim($requete, 'AND '); |
$requete .= ' ORDER BY '.(isset($this->orderby) && (!is_null($this->orderby)) ? $this->orderby : |
'c.ci_meta_date_ajout DESC').' '."LIMIT $this->start,$this->limit "; |
412,7 → 413,7 |
if ($elements != false && count($elements) > 0) { |
$contenu = $this->executerService($elements); |
} else { |
$this->messages[] = "Aucune image disponible.".$requete; |
$this->messages[] = "Aucune image disponible."; |
} |
|
return $contenu; |
442,7 → 443,8 |
if ($nom_valeur[1] == "indetermine") $nom_valeur[1] = 'null'; |
$requete .= ' ('.$nom_valeur[0].' LIKE "%'.$nom_valeur[1].'%" OR b.nom_sel LIKE "%'. |
$nom_valeur[1].'%") AND '; break; |
case "mots-cles" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break; |
case "tag" : $requete .= $this->creerSousRequeteMotsCles($nom_valeur[1]); break; |
case "projet" : $requete .= $this->creerSousRequeteProjet($nom_valeur[1]); break; |
default : $requete .= $nom_valeur[0].' = "'.$nom_valeur[1].'" AND '; break; |
} |
} |
452,7 → 454,6 |
} |
|
private function creerSousRequeteMotsCles($mot_cle) { |
$requete = ''; |
if (preg_match('/.*OU.*/', $mot_cle)) { |
$requete = $this->creerSousRequeteMotsClesOu($mot_cle); |
} else if (preg_match('/.*ET.*/', $mot_cle)) { |
468,7 → 469,9 |
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '. |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR '; |
} |
}echo $requete; |
} else { |
$requete = ' (ci_meta_mots_cles like "inexistant" OR'; |
} |
} |
$requete = rtrim($requete,' OR ').' ) AND '; |
return $requete; |
475,7 → 478,6 |
} |
|
private function creerSousRequeteMotsClesOu($mot_cle) { |
$requete = ''; |
$tab_mots_cles = explode('OU', $mot_cle); |
$where = ''; |
foreach ($tab_mots_cles as $mot) { |
492,12 → 494,13 |
$requete .= '(ci_meta_mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND ci_ce_utilisateur = '. |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR '; |
} |
} else { |
$requete = ' (ci_meta_mots_cles like "inexistant" OR'; |
} |
return $requete; |
} |
|
private function creerSousRequeteMotsClesEt($mot_cle) { |
$requete = ''; |
$where = ''; |
$champs = 'a.cmc_id_proprietaire , '; |
$table = ''; |
528,9 → 531,94 |
} |
$requete .= ' ci_ce_utilisateur = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR '; |
} |
} else { |
$requete = ' (ci_meta_mots_cles like "inexistant" OR'; |
} |
return $requete; |
} |
|
private function creerSousRequeteProjet($mot_cle) { |
$requete = 'mots_cles like "inexistant" OR'; |
if (preg_match('/.*OU.*/', $mot_cle)) { |
$requete = $this->creerSousRequeteProjetOu($mot_cle); |
} else if (preg_match('/.*ET.*/', $mot_cle)) { |
$requete = $this->creerSousRequeteProjetEt($mot_cle); |
} else { |
// Construction de la requête |
$prerequete = 'SELECT * '. |
'FROM cel_mots_cles_obs '. |
'WHERE cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle($mot_cle)); |
$elements = $this->executerRequete($prerequete); |
if ($elements != false && count($elements) > 0) { |
$requete = ''; |
foreach ($elements as $occurence) { |
$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '. |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR '; |
} |
} |
} |
$requete = rtrim($requete,' OR ').' AND '; |
return $requete; |
} |
|
private function creerSousRequeteProjetOu($mot_cle) { |
$requete = 'mots_cles like "inexistant" OR'; |
$tab_mots_cles = explode('OU', $mot_cle); |
$where = ''; |
foreach ($tab_mots_cles as $mot) { |
$where .= 'cmc_id_mot_cle_general = '.$this->bdd->quote($this->encoderMotCle(trim($mot))).' OR '; |
} |
$where = rtrim($where,' OR '); |
|
// Construction de la requête |
$prerequete = "SELECT cmc_id_mot_cle_utilisateur, cmc_id_proprietaire FROM cel_mots_cles_obs WHERE $where "; |
$elements = $this->executerRequete($prerequete); |
if ($elements != false && count($elements) > 0) { |
$requete = ''; |
foreach ($elements as $occurence) { |
$requete .= '(mots_cles LIKE "%'.$occurence['cmc_id_mot_cle_utilisateur'].'%" AND identifiant = '. |
$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR '; |
} |
} |
return $requete; |
} |
|
private function creerSousRequeteProjetEt($mot_cle) { |
$requete = 'mots_cles like "inexistant" OR'; |
$where = ''; |
$champs = 'a.cmc_id_proprietaire , '; |
$table = ''; |
$i = "a"; $j = "a"; |
|
$tab_mots_cles = explode("ET", $mot_cle); |
foreach ($tab_mots_cles as $mot) { |
$champs .= "$i.cmc_id_mot_cle_utilisateur as $i , "; |
$table .= "cel_mots_cles_obs $i , "; |
$where .= "$i.cmc_id_mot_cle_general = ".$this->bdd->quote($this->encoderMotCle(trim($mot))).' AND '; |
if ($i !== "a") { |
$where .= " $i.cmc_id_proprietaire = ".$j.".cmc_id_proprietaire AND "; |
$j++; |
} |
$i++; |
} |
$where = rtrim($where,' AND '); $champs = rtrim($champs,' , '); $table = rtrim($table,' , '); |
|
// Construction de la requête |
$prerequete = "SELECT $champs FROM $table WHERE $where "; |
$elements = $this->executerRequete($prerequete);//print_r($elements); |
if ($elements != false && count($elements) > 0) { |
$requete = ''; |
foreach ($elements as $occurence) { |
$requete = ' ('; |
for ($j = 'a'; $j < $i; $j++) { |
$requete .= 'mots_cles like "%'.$occurence[$j].'%" AND '; |
} |
$requete .= ' identifiant = '.$this->bdd->quote($occurence['cmc_id_proprietaire']).' ) OR '; |
} |
} |
return $requete; |
} |
|
private function creerSousRequeteRechercheGenerale($chaine_requete) { |
$requete = ''; |
if (trim($chaine_requete) != '') { |