62,7 → 62,7 |
$requete_selection_observations = rtrim($requete_selection_observations, 'AND '); |
|
$requete_selection_observations .= ' ORDER BY ordre LIMIT '.$debut.','.$limite ; |
|
|
$resultats_observations = array(); |
$resultats_observations = $this->requeter($requete_selection_observations); |
|
186,7 → 186,17 |
if($valeur == "NULL") { |
$sous_requete .= "(ce_zone_geo IS NULL OR ce_zone_geo = '')"; |
} else { |
$sous_requete .= "ce_zone_geo LIKE ".$this->proteger('INSEE-C:'.$valeur.'___'); |
if(strpos($valeur,',') !== false) { |
$dpts = explode(',',$valeur); |
$sous_requete .= '('; |
foreach($dpts as $dpt) { |
$sous_requete .= "ce_zone_geo LIKE ".$this->proteger('INSEE-C:'.$dpt.'___').' OR '; |
} |
$sous_requete = rtrim($sous_requete,' OR ').') '; |
} else { |
$sous_requete .= "ce_zone_geo LIKE ".$this->proteger('INSEE-C:'.$valeur.'___'); |
} |
|
} |
$sous_requete .= ' AND ' ; |
break; |
209,7 → 219,15 |
case 'recherche': |
$sous_requete .= $this->fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur); |
$sous_requete .= ' AND '; |
break; |
break; |
case 'date_debut': |
$sous_requete .= 'date_observation >= '.$this->proteger($this->formaterEnDateMysql($valeur)); |
$sous_requete .= ' AND '; |
break; |
case 'date_fin': |
$sous_requete .= 'date_observation <= '.$this->proteger($this->formaterEnDateMysql($valeur)); |
$sous_requete .= ' AND '; |
break; |
default: |
if(trim($nom) != '') |
{ |
228,6 → 246,14 |
return $sous_requete; |
} |
|
private function formaterEnDateMysql($date) { |
$annee = substr($date, 6, 4); |
$mois = substr($date, 3, 2); |
$jour = substr($date, 0, 2); |
$date = $annee . '-' . $mois . '-' . $jour; |
return $date; |
} |
|
private function fabriquerSousRequeteRechercheGenerale($id_utilisateur, $valeur) { |
$valeur = str_replace("*","%",$valeur); |
$valeur = $this->proteger('%'.$valeur.'%'); |
269,7 → 295,6 |
); |
|
return $sous_requete .= $champs[$valeur]." = ".$this->proteger(""); |
} |
|
} |
} |
?> |