33,16 → 33,6 |
* Est utilisée principalement pr déterminer le format du tableau à retourner. */ |
protected $format_reponse = 'zone-geo'; |
|
/** Tri des résultats */ |
protected $tri = 'dep'; |
protected $ordre = 'ASC'; |
/** |
* Permet de trier selon les clefs des tableaux reçus, et que ça marche (en |
* fait faut faire des alias de colonnes correspondant aux clefs de sortie |
* mais bon bref...) |
*/ |
protected $corres_tri = array('code' => 'dep', 'nom' => 'nccenr'); |
|
/** Variables constituant les parametres de la requete SQL (champ, condition, group by, limit) remplie |
* selon ressources et paramètres */ |
protected $requete_champ = ' * '; |
55,7 → 45,6 |
/** Stockage des ressources et paramétres */ |
protected $table_ressources = array(); |
protected $table_param = array(); |
|
/** |
* Precise la contenance plus ou moins précise du tableau à retourner : |
* - min = les données présentes dans la table |
63,13 → 52,6 |
* - oss = la liste des nom_sci (uniquement pour noms et taxons) |
*/ |
protected $retour_format = 'max'; |
|
/** |
* Si "objet", renverra un objet dont les clefs sont les codes de départements; |
* Si "liste", renverra une liste qui a le mérite de conserver l'ordre ! |
*/ |
protected $retour_type = 'objet'; |
|
/** Valeur du paramètre de requete recherche : |
* - stricte : le masque est passé tel quel à l'opérateur LIKE. |
* - etendue : ajout automatique du signe % à la place des espaces et en fin de masque avec utilisation de LIKE. |
78,7 → 60,6 |
|
/** Permet de stocker le tableau de résultat (non encodé en json) */ |
protected $table_retour = array(); |
|
/** Stocke le nombre total de résultats de la requete principale. Est calculée lors de l'assemblage de la requete */ |
protected $total_resultat; |
|
113,23 → 94,6 |
case 'retour.format' : |
$this->retour_format = $valeur; |
break; |
case 'retour.type' : |
if (in_array($valeur, array('objet', 'liste'))) |
$this->retour_type = $valeur; |
break; |
case 'retour.tri' : |
if ($valeur != '' ) { |
if (in_array($valeur, array_keys($this->corres_tri))) { |
$this->tri = $this->corres_tri[$valeur]; |
} else { |
$this->tri = $valeur; // au petit bonheur la chance |
} |
} |
break; |
case 'retour.ordre' : |
if (in_array(strtoupper($valeur), array('ASC', 'DESC'))) |
$this->ordre = $valeur; |
break; |
case 'navigation.depart' : |
if ($valeur != '') |
$this->limite_requete['depart'] = $valeur; |
228,7 → 192,6 |
$requete = ' SELECT '.$this->requete_champ. |
' FROM '.$this->table |
.$this->formerRequeteCondition() |
. ' ORDER BY ' . $this->tri . ' ' . $this->ordre |
.$this->formerRequeteLimite(); |
return $requete; |
} |
249,6 → 212,11 |
$this->requete_limite = ''; |
} else { |
$this->total_resultat = $this->recupererTotalResultat(); |
/*if ($this->limite_requete['depart'] > $this->total_resultat) { |
//cas où la requete presente un navigation.depart supérieur au nb total de resultats. |
$this->limite_requete['depart'] = |
(($nb - $this->limite_requete['limite']) < 0) ? 0 : ($nb - $this->limite_requete['limite']); |
}*/ |
$this->requete_limite = ' LIMIT '.$this->limite_requete['depart'].', '.$this->limite_requete['limite']; |
} |
return $this->requete_limite; |
311,11 → 279,7 |
if ($this->retour_format == 'max') { |
$this->table_retour['href'] = $this->ajouterHref('zone-geo', $num); |
} |
if ($this->retour_type == 'objet') { |
$resultat_json[$num] = $this->table_retour; |
} elseif ($this->retour_type == 'liste') { |
$resultat_json[] = $this->table_retour; |
} |
$resultat_json[$num] = $this->table_retour; |
$this->table_retour = array(); |
} |
$table_retour_json['resultat'] = $resultat_json; |