// précisons au navigateur que ce script retourne du JSON
header('Content-Type: application/json; charset=utf-8');
// chargeons le script de connexion mutualisé avec les autres traitements PHP
// https://www.puce-et-media.com/parcours-dapprentissage-web-part-vi-php-structurer-et-traiter-cote-serveur/
require_once '__connect__.php';
// nous récupérons le paramètre transmis par l'URL
$code = $_GET['code'] ?? '';
// vérifions que le code postal respecte le format attendu : cinq chiffres
// si cela ne correspond pas au format attentu, on retourne l'erreur au client
if (!preg_match('/^[0-9]{5}$/', $code)) {
echo json_encode([
'success' => false,
'message' => 'Code postal invalide.'
]);
exit;
}
// on prépare la requête SQL
$sql = "
SELECT *
FROM tab_cp
WHERE ch_cp_code = :code
ORDER BY ch_cp_label ASC
";
// préparons puis exécutons la requête en transmettant le code postal recherché
$stmt = $pdo->prepare($sql);
$stmt->execute([
':code' => $code
]);
// on récupère les résultats que l'on stocke dans $cp
$cp = $stmt->fetchAll();
// aucune commune ne correspond au code postal demandé
if (!$cp) {
echo json_encode([
'success' => false,
'message' => 'Code postal inconnu.'
]);
exit;
}
// retournons les informations au client
// nombre de communes trouvées, indicateur simple ou multiple,
// ainsi que l'ensemble des données correspondantes
echo json_encode([
'success' => true,
'count' => count($cp),
'multiple' => count($cp) > 1,
'datas' => $cp
]);