Line 255... |
Line 255... |
255 |
trigger_error('impossible de récupérer les informations de la table '.$identifiant);
|
255 |
trigger_error('impossible de récupérer les informations de la table '.$identifiant);
|
256 |
}
|
256 |
}
|
Line 257... |
Line 257... |
257 |
|
257 |
|
258 |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($identifiant);
|
258 |
$tableau_mappage = $this->obtenirChampsMappageAnnuaire($identifiant);
|
- |
|
259 |
$champ_code_postal = $tableau_mappage[0]['champ_code_postal'];
|
Line 259... |
Line 260... |
259 |
$champ_code_postal = $tableau_mappage[0]['champ_code_postal'];
|
260 |
$champ_pays = $tableau_mappage[0]['champ_pays'];
|
260 |
|
261 |
|
261 |
$requete_nombre_inscrits = 'SELECT IF ( SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 2 ) >= 96, '.
|
262 |
$requete_nombre_inscrits = 'SELECT IF ( SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 2 ) >= 96, '.
|
262 |
' SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 3 ), '.
|
263 |
' SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 3 ), '.
|
263 |
' SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 2 ) ) AS id, '.
|
264 |
' SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 2 ) ) AS id, '.
|
- |
|
265 |
' COUNT(*) AS nbre '.
|
264 |
' COUNT(*) AS nbre '.
|
266 |
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' '.
|
265 |
'FROM '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table'].' '.
|
267 |
'WHERE '.$champ_pays.' = "FR" '.
|
266 |
'GROUP BY IF ( SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 2 ) >= 96, '.
|
268 |
'GROUP BY IF ( SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 2 ) >= 96, '.
|
267 |
' SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 3 ), '.
|
269 |
' SUBSTRING( '.$champ_code_postal.' FROM 1 FOR 3 ), '.
|
Line 338... |
Line 340... |
338 |
trigger_error('impossible de récupérer le nombre d\'inscrits de la table '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']);
|
340 |
trigger_error('impossible de récupérer le nombre d\'inscrits de la table '.$resultat_informations_annuaire['aa_bdd'].'.'.$resultat_informations_annuaire['aa_table']);
|
339 |
}
|
341 |
}
|
Line 340... |
Line 342... |
340 |
|
342 |
|
341 |
return $resultat_nombre_inscrits;
|
343 |
return $resultat_nombre_inscrits;
|
342 |
}
|
344 |
}
|
343 |
|
345 |
|
344 |
/**
|
346 |
/**
|
345 |
* Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné
|
347 |
* Recherche selon une valeur d'un champ qui peut être une valeur approximative (avec des %) dans un champ d'annuaire donné
|
346 |
* @param int $id_annuaire l'identifiant de l'annuaire
|
348 |
* @param int $id_annuaire l'identifiant de l'annuaire
|
347 |
* @param string $champ_critere le champ qui servira de filtre
|
349 |
* @param string $champ_critere le champ qui servira de filtre
|
348 |
* @param string $valeur la valeur à rechercher
|
350 |
* @param string $valeur la valeur à rechercher
|
349 |
* @param boolean $modele indique si l'on veut recherche la valeur exacte ou non
|
351 |
* @param boolean $modele indique si l'on veut recherche la valeur exacte ou non
|
350 |
* @return array un tableau contenant la liste des inscrits dans l'annuaire donné, correspondants à ce critère
|
352 |
* @return array un tableau contenant la liste des inscrits dans l'annuaire donné, correspondants à ce critère
|
351 |
*/
|
353 |
*/
|
Line 352... |
Line 354... |
352 |
public function rechercherInscritDansAnnuaireMappeParChamp($id_annuaire, $champ_critere, $valeur, $modele = false, $numero_page = 1, $taille_page = 50) {
|
354 |
public function rechercherInscritDansAnnuaireMappeParTableauChamps($id_annuaire, $criteres, $modele = false, $numero_page = 1, $taille_page = 50) {
|
Line 353... |
Line 355... |
353 |
|
355 |
|
354 |
$sep = '';
|
356 |
$sep = '';
|
355 |
|
357 |
|
- |
|
358 |
if($modele) {
|
- |
|
359 |
$sep = '%';
|
- |
|
360 |
}
|
- |
|
361 |
|
Line 356... |
Line -... |
356 |
if($modele) {
|
- |
|
357 |
$sep = '%';
|
- |
|
358 |
}
|
362 |
foreach($criteres as $champ => $valeur) {
|
359 |
|
363 |
$criteres[$champ] = $valeur.$sep;
|
Line 360... |
Line 364... |
360 |
$valeurs = array($champ_critere => $valeur.$sep);
|
364 |
}
|
361 |
|
365 |
|
362 |
return $this->rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, array(), true, $numero_page, $taille_page);
|
366 |
return $this->rechercherInscritDansAnnuaireMappe($id_annuaire, $criteres, array(), true, $numero_page, $taille_page);
|
Line 1036... |
Line 1040... |
1036 |
* @param int $id_annuaire identifiant de l'annuaire dans lequel on recherche
|
1040 |
* @param int $id_annuaire identifiant de l'annuaire dans lequel on recherche
|
1037 |
* @param array $valeurs un tableau de valeurs à rechercher
|
1041 |
* @param array $valeurs un tableau de valeurs à rechercher
|
1038 |
* @param array $id_a_inclure un tableau d'identifiants à inclure (pour chainer des recherches)
|
1042 |
* @param array $id_a_inclure un tableau d'identifiants à inclure (pour chainer des recherches)
|
1039 |
* @param boolean $exclusive indique si l'on recherche effectue une recherche exclusive ou inclusive (AND, ou OR)
|
1043 |
* @param boolean $exclusive indique si l'on recherche effectue une recherche exclusive ou inclusive (AND, ou OR)
|
1040 |
*/
|
1044 |
*/
|
1041 |
public function rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, $id_a_inclure = array(), $exclusive = true, $numero_page = 1, $taille_page = 50) {
|
1045 |
public function rechercherInscritDansAnnuaireMappe($id_annuaire, $valeurs, $id_a_inclure = array(), $exclusive = true, $numero_page = 1, $taille_page = 50, $ordre = 'champ_nom') {
|
Line 1042... |
Line 1046... |
1042 |
|
1046 |
|
1043 |
// Si la fonction est appelée et que tous les critères sont vides
|
1047 |
// Si la fonction est appelée et que tous les critères sont vides
|
1044 |
if(count($valeurs) == 0 && count($id_a_inclure) == 0) {
|
1048 |
if(count($valeurs) == 0 && count($id_a_inclure) == 0) {
|
1045 |
// on sort directement
|
1049 |
// on sort directement
|
Line 1076... |
Line 1080... |
1076 |
}
|
1080 |
}
|
Line 1077... |
Line 1081... |
1077 |
|
1081 |
|
1078 |
// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE
|
1082 |
// si le champ contient un % alors on ne cherche pas une valeur exacte : on utilise LIKE
|
1079 |
foreach($valeurs as $champ => $valeur) {
|
1083 |
foreach($valeurs as $champ => $valeur) {
|
- |
|
1084 |
if(trim($valeur) != '') {
|
- |
|
1085 |
|
- |
|
1086 |
if($champ == $champs_mappage[0]['champ_nom'] || $champ == $champs_mappage[0]['champ_code_postal']) {
|
- |
|
1087 |
if(strpos($valeur,"%") == false) {
|
- |
|
1088 |
$valeur .= '%';
|
- |
|
1089 |
}
|
- |
|
1090 |
}
|
1080 |
if(trim($valeur) != '') {
|
1091 |
|
1081 |
if(strpos($valeur,"%") != false) {
|
1092 |
if(strpos($valeur,"%") != false) {
|
1082 |
$operateur = ' LIKE ';
|
1093 |
$operateur = ' LIKE ';
|
1083 |
} else {
|
1094 |
} else {
|
1084 |
$operateur = ' = ';
|
1095 |
$operateur = ' = ';
|
Line 1102... |
Line 1113... |
1102 |
$nb_inscrits = 0;
|
1113 |
$nb_inscrits = 0;
|
1103 |
if($resultat_nb_inscrits) {
|
1114 |
if($resultat_nb_inscrits) {
|
1104 |
$nb_inscrits = $resultat_nb_inscrits['nb'];
|
1115 |
$nb_inscrits = $resultat_nb_inscrits['nb'];
|
1105 |
}
|
1116 |
}
|
Line -... |
Line 1117... |
- |
|
1117 |
|
1106 |
|
1118 |
$requete_recherche_inscrits .= ' ORDER BY '.$champs_mappage[0]['champ_nom'];
|
Line 1107... |
Line 1119... |
1107 |
$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page);
|
1119 |
$requete_recherche_inscrits .= ' LIMIT '.(($numero_page-1)*$taille_page).','.($taille_page);
|
Line 1108... |
Line 1120... |
1108 |
|
1120 |
|