67,9 → 67,16 |
$requete_selection_observations .= 'WHERE '; |
} |
|
$tri = (isset($criteres['tri']) && in_array($criteres['tri'], self::$tris_possibles)) ? $criteres['tri'] : 'ordre'; |
// construction du tri |
$order_by_clause = ''; |
if (isset($criteres['tri']) && in_array($criteres['tri'], self::$tris_possibles)) { |
$order_by_clause = ' ORDER BY ' . $criteres['tri']; |
|
if (isset($criteres['tri_dir']) && in_array($criteres['tri_dir'], array('ASC', 'DESC'))) { |
$order_by_clause .= ' ' . $criteres['tri_dir'] |
} |
} |
unset($criteres['tri']); |
$tri_dir = (isset($criteres['tri_dir']) && in_array($criteres['tri_dir'], array('ASC', 'DESC'))) ? $criteres['tri_dir'] : 'ASC'; |
unset($criteres['tri_dir']); |
|
// très mauvaise solution, mais qui permet au moins d'effectuer des requêtes complexes, sans modifier l'API |
80,7 → 87,7 |
|
$requete_selection_observations .= $sous_requete_recherche; |
$requete_selection_observations = rtrim($requete_selection_observations, 'AND '); |
$requete_selection_observations .= $id_utilisateur == null ? ' ORDER BY id_observation, ordre ' : ' ORDER BY '.$tri.' '.$tri_dir; |
$requete_selection_observations .= $id_utilisateur == null ? ' ORDER BY id_observation, ordre ' : $order_by_clause; |
$requete_selection_observations .= ($debut == 0 && $limite == 0) ? '' : ' LIMIT '.$debut.','.$limite ; |
|
$this->requete_selection_observations = $requete_selection_observations; |
224,17 → 231,17 |
} |
$sous_requete .= ' AND ' ; |
break; |
case 'pays': |
if ($valeur == "NULL") { |
$sous_requete .= "(pays IS NULL OR pays = '')"; |
case 'pays': |
if ($valeur == "NULL") { |
$sous_requete .= "(pays IS NULL OR pays = '')"; |
} else { |
$pays_t = explode(',', $valeur); |
foreach($pays_t as &$pays) { |
$pays = Cel::db()->proteger($pays); |
} |
$sous_requete .= '(pays IN ('.implode(',', $pays_t).')) '; |
} |
$sous_requete .= ' AND ' ; |
} |
$sous_requete .= '(pays IN ('.implode(',', $pays_t).')) '; |
} |
$sous_requete .= ' AND ' ; |
break; |
case 'departement': |
if ($valeur == "NULL") { |
382,4 → 389,4 |
'commune' => 'zone_geo'); |
return $sous_requete .= $champs[$valeur]." = ".Cel::db()->proteger(""); |
} |
} |
} |