496,7 → 496,6 |
|
if (!isset($masques['masque.tag'])) { |
$conditionsLibre[] = "mots_cles_texte LIKE '%$passe%'"; |
//TODO : voir pour images |
} |
|
if (!isset($masques['masque.date'])) { |
535,10 → 534,10 |
} |
|
// mots_cles_texte |
if (isset($masques['masque.tag'])) { |
/*if (isset($masques['masque.tag'])) { |
$motscles = $masques['masque.tag']; |
$conditionsObs[] = "mots_cles_texte LIKE '%$motscles%'"; |
} |
}*/ |
|
// date |
if (isset($masques['masque.date'])) { |
615,37 → 614,33 |
$requeteLiaisons = 'SELECT DISTINCT SQL_CALC_FOUND_ROWS dob.id_observation as id_observation, nom_sel, nom_sel_nn, nt, famille, ce_zone_geo, zone_geo, lieudit, station, milieu, '. |
' date_observation, dob.mots_cles_texte as mots_cles_texte, dob.commentaire as commentaire, di.mots_cles_texte as mots_cles_texte_image , date_transmission, '. |
' di.id_image as id_image, di.ce_utilisateur as ce_utilisateur, prenom, nom, courriel, dob.prenom_utilisateur, dob.nom_utilisateur, dob.courriel_utilisateur, nom_original '. |
' FROM del_obs_image DOI '. |
' FROM del_obs_image doi '. |
' INNER JOIN del_image di ON doi.id_image = di.id_image '. |
' INNER JOIN del_observation dob ON doi.id_observation = dob.id_observation '. |
' LEFT JOIN del_utilisateur du ON du.id_utilisateur = di.ce_utilisateur '; |
|
|
$chaineWhere = ''; |
if (isset($masques['masque.tag']) && sizeof($masques) == 1) { |
$connecteur = ' OR '; |
} else { |
$connecteur = ' AND '; |
} |
|
$where = array(); |
if (!empty($conditionsObs) && strlen($idsObs) > 0) { |
$where[] = 'dob.id_observation IN ( '.$idsObs.') '; |
$where[] = ' dob.id_observation IN ( '.$idsObs.') '; |
} |
|
if (!empty($conditionsImg) && strlen($idsImages) > 0) { |
$chaineWhere = 'di.id_image IN ( '.$idsImages.') '; |
// Si on ne cherche pas que le tag, on doit récupérer uniquement les |
// images qui matche avec la recherche d'observation |
if (isset($masques['masque.tag']) && sizeof($masques) > 1) { |
$chaineWhere .= ' AND doi.id_observation IN ('.$idsObs.') '; |
} |
$where[] = $chaineWhere; |
$where[] = 'di.id_image IN ( '.$idsImages.') '; |
} |
|
|
if (!empty($where)) { |
$requeteLiaisons .= ' WHERE '.implode(' OR ', $where); |
$chaineWhere = ' WHERE '.implode($connecteur, $where); |
$requeteLiaisons .= $chaineWhere; |
} |
|
// limite de la chaine idobs = 1047389 |
/*if (strlen($requeteLiaisons) > 1047389) { |
exit('requete trop longue'); |
//return array(); |
}*/ |
|
$requeteLiaisons .= $this->gestionBdd->getLimitSql(); |
|
// on ne lance la requete que si on a trouvé des images ou des observations, sinon |