1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| function getAddresses($criteria = []) {
global $db, $language;
$countryCol = $language.'_name';
$select = "
SELECT a.id, nom, prenom, $countryCol AS pays, cp, ville,
courriel, tel_domicile, tel_portable
FROM dat_addresses a
LEFT JOIN lst_countries c
ON a.pays=c.id
";
// Composition de la clause WHERE et du tableau des paramètres
print_r($criteria); echo '<br/>';
$addClauses[0] = "id_user=:id_user";
$params['id_user'] = $_SESSION['user']['id_user'];
if ($criteria) {
if ( !empty($criteria['min']) and empty($criteria['max']) ) {
$criteria['max'] = '%';
}
if ( !empty($criteria['max']) and empty($criteria['min']) ) {
$criteria['min'] = '_';
}
if ( isset($criteria['min'], $criteria['max']) ) {
$addClauses[] = "nom BETWEEN :min AND :max";
$params['min'] = $criteria['min'];
$params['max'] = $criteria['max'];
}
if ( !empty($criteria['pays']) ) {
$addClauses[] = "pays=:pays";
$params['pays']= $criteria['pays'];
}
if ( !empty($criteria['cp']) ) {
$addClauses[] = "cp LIKE :cp";
$params['cp']= $criteria['cp'].'%';
}
if ( !empty($criteria['ville']) ) {
$addClauses[] = "ville LIKE :ville";
$params['ville']= $criteria['ville'].'%';
}
print_r($addClauses); echo '<br/>';
}
$strWhere = "WHERE " . implode(' AND ', $addClauses);
// Requête globale
$query = $select . $strWhere . " ORDER BY nom, prenom";
echo $query, '<br/>';
print_r($params); echo '<br/>';
// Traitement
$result = $db->prepare($query);
$result->execute($params);
return $result->fetchAll();
} |
Partager