155,7 → 155,10 |
} |
|
private function getDerniersCommentaires() { |
$clauseWhere = $this->chargerClauseWhere(); |
$commentaires = array(); |
$idsCommentaires = $this->getIdsDerniersCommentaires(); |
if (!empty($idsCommentaires)) { |
$idsCommentairesconcat = implode(', ', $idsCommentaires); |
$requete = 'SELECT DISTINCT dc.*, '. |
' dob.id_observation AS dob_id_observation, dob.ce_zone_geo AS dob_ce_zone_geo, '. |
' dob.zone_geo AS dob_zone_geo, dob.date_observation AS dob_date_observation, dob.nom_sel AS dob_nom_sel, '. |
165,15 → 168,37 |
' ON dob.id_observation = dc.ce_observation '. |
' LEFT JOIN del_utilisateur AS duo '. |
' ON dob.ce_utilisateur = duo.id_utilisateur '. |
"WHERE id_commentaire IN ($idsCommentairesconcat) ". |
'ORDER BY dc.date DESC '. |
'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '. |
' -- '.__FILE__.' : '.__LINE__; |
$commentaires = $this->bdd->recupererTous($requete); |
} |
return $commentaires; |
} |
|
private function getIdsDerniersCommentaires() { |
$clauseWhere = $this->chargerClauseWhere(); |
$requete = 'SELECT DISTINCT dc.id_commentaire '. |
'FROM del_commentaire AS dc '. |
' INNER JOIN del_observation AS dob ON (dc.ce_observation = dob.id_observation) '. |
' LEFT JOIN del_utilisateur AS duo ON (dob.ce_utilisateur = duo.id_utilisateur) '. |
'WHERE proposition_initiale != 1 '. |
($clauseWhere != '' ? "AND $clauseWhere " : ''). |
'ORDER BY dc.date DESC '. |
'LIMIT '.$this->navigation->getDepart().','.$this->navigation->getLimite().' '. |
' -- '.__FILE__.' : '.__LINE__; |
//echo $requete; |
$resultats = $this->bdd->recupererTous($requete); |
|
$elements = $this->bdd->recupererTous($requete); |
return $elements; |
$idsCommentaires = array(); |
if ($resultats != false && is_array($resultats)) { |
foreach ($resultats as $infos) { |
$idsCommentaires[] = $infos['id_commentaire']; |
} |
} |
return $idsCommentaires; |
} |
|
/** |
* Charger la clause WHERE en fonction des paramètres de masque |
191,7 → 216,7 |
switch ($cleFiltre) { |
case 'espece': |
$valeurP = $this->bdd->proteger($valeur.'%'); |
$where[] = " dob.$champ LIKE $valeurP OR dc.$champ LIKE $valeurP "; |
$where[] = " (dob.$champ LIKE $valeurP OR dc.$champ LIKE $valeurP) "; |
break; |
case 'auteur': |
$where[] = $this->creerFiltreAuteur($valeur); |
217,9 → 242,9 |
$whereAuteur = " dc.utilisateur_courriel LIKE $auteurIdMotif "; |
} else { |
$tableauNomPrenom = explode(' ', $auteurId, 2); |
if (count($tableauNomPrenom) != 2) { |
if (count($tableauNomPrenom) == 1) { |
$whereAuteur = "(dc.utilisateur_nom LIKE $auteurIdMotif OR dc.utilisateur_prenom LIKE $auteurIdMotif) "; |
} else { |
} else if (count($tableauNomPrenom) == 2) { |
// on teste potentiellement un nom prenom ou bien un prénom nom |
$nomMotif = $this->bdd->proteger($tableauNomPrenom[0].'%'); |
$prenomMotif = $this->bdd->proteger($tableauNomPrenom[1].'%'); |
227,7 → 252,7 |
$whereAuteur = ' ('. |
"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ". |
'OR '. |
"(dc.utilisateur_nom LIKE $nomMotif AND dc.utilisateur_prenom LIKE $prenomMotif) ". |
"(dc.utilisateur_nom LIKE $prenomMotif AND dc.utilisateur_prenom LIKE $nomMotif) ". |
') '; |
} |
} |