Eau du robinet en Outre-Mer (DOM)

0 réseaux · 0 communes · données 2026

0
Bulletins analysés
0
Non conformes
5
Départements

Rechercher une commune en Outre-Mer (DOM)

Qualité de l'eau par département

Pourcentages calculés sur 2024–2026 (3 ans). Cliquez sur un département pour voir le statut à l'instant T.

Alertes de non-conformité

Données 2026 · triées par date décroissante · Voir toutes les alertes →

Statut TCommuneDép. Type NCDate NCRetour conformité INSEENC 2026 / Total
NC Sinnamary 973 Physico-chimique 2026-03-31 ✓ 2026-01-28 97312 7 / 10
NC Saint-Louis 974 Bactériologique 2026-03-27 ✓ 2026-03-25 97414 2 / 29
Conforme L'Étang-Salé 974 Bactériologique 2026-03-27 ✓ 2026-03-27 97404 5 / 28
NC Macouria 973 Bactério + Physico 2026-03-26 ✓ 2026-03-11 97305 1 / 7
NC Matoury 973 Bactério + Physico 2026-03-26 ✓ 2026-03-17 97307 1 / 20
NC Maripasoula 973 Bactério + Physico 2026-03-25 ✓ 2026-03-24 97353 3 / 9
NC Papaichton 973 Bactériologique 2026-03-25 97362 1 / 1
Conforme Saint-Louis 974 Bactériologique 2026-03-25 ✓ 2026-03-25 97414 2 / 29
Conforme Saint-Denis 974 Bactériologique 2026-03-09 ✓ 2026-03-25 97411 1 / 56
NC Sinnamary 973 Physico-chimique 2026-03-05 ✓ 2026-01-28 97312 7 / 10
NC Sinnamary 973 Physico-chimique 2026-03-05 ✓ 2026-01-28 97312 7 / 10
NC Sinnamary 973 Physico-chimique 2026-03-05 ✓ 2026-01-28 97312 7 / 10
NC Sinnamary 973 Physico-chimique 2026-03-05 ✓ 2026-01-28 97312 7 / 10
NC Sinnamary 973 Physico-chimique 2026-03-05 ✓ 2026-01-28 97312 7 / 10
Conforme Maripasoula 973 Bactériologique 2026-03-04 ✓ 2026-03-24 97353 3 / 9
Conforme Maripasoula 973 Bactériologique 2026-03-04 ✓ 2026-03-24 97353 3 / 9
NC Le Moule 971 Physico-chimique 2026-03-04 ✓ 2026-02-24 97117 5 / 45
NC Petit-Canal 971 Physico-chimique 2026-03-04 ✓ 2026-03-03 97119 3 / 26
NC Petit-Canal 971 Physico-chimique 2026-03-04 ✓ 2026-03-03 97119 3 / 26
NC Le Moule 971 Physico-chimique 2026-03-04 ✓ 2026-02-24 97117 5 / 45
Conforme L'Ajoupa-Bouillon 972 Bactériologique 2026-03-03 ✓ 2026-03-09 97201 1 / 5
Conforme Mamoudzou 976 Physico-chimique 2026-03-03 ✓ 2026-04-09 97611 2 / 48
Conforme Dzaoudzi 976 Physico-chimique 2026-03-02 ✓ 2026-04-09 97608 1 / 27
Conforme Koungou 976 Physico-chimique 2026-03-02 ✓ 2026-04-09 97610 1 / 25
Conforme Mamoudzou 976 Physico-chimique 2026-03-02 ✓ 2026-04-09 97611 2 / 48
Conforme Petit-Bourg 971 Physico-chimique 2026-02-26 ✓ 2026-03-18 97118 2 / 29
Conforme Baie-Mahault 971 Physico-chimique 2026-02-26 ✓ 2026-03-23 97103 3 / 38
Conforme Grand-Santi 973 Bactériologique 2026-02-25 ✓ 2026-02-25 97357 2 / 7
Conforme Bouéni 976 Physico-chimique 2026-02-25 ✓ 2026-04-01 97604 1 / 10
Conforme Chirongui 976 Physico-chimique 2026-02-25 ✓ 2026-04-01 97606 2 / 17

L'eau potable en Outre-Mer (DOM)

La région Outre-Mer (DOM) compte 0 réseaux de distribution d'eau potable desservant 0 communes. Les données affichées proviennent de la base ARS du Ministère de la Santé, alimentée par les Agences Régionales de Santé (ARS).

Source : ARS, Ministère de la Santé. Données 2026. Mise à jour quotidienne.

Commune Dép. NC en 2026 Total bulletins Statut instantané Dernier relevé Retour conformité
** * region/index.php — Page région dynamique * URL : /region/bretagne/ /region/grand-est/ etc. * Routing via .htaccess : RewriteRule ^region/([^/]+)/? region/index.php?slug=$1 */ require_once dirname(__DIR__) . '/db-connect.php'; // ── Référentiel régions ─────────────────────────────────────────────────── $REGIONS = [ 'ile-de-france' => ['nom'=>'Île-de-France', 'id_region'=>'11','deps'=>['75','77','78','91','92','93','94','95'],'chef_lieu'=>'Paris'], 'auvergne-rhone-alpes' => ['nom'=>'Auvergne-Rhône-Alpes', 'id_region'=>'84','deps'=>['01','03','07','15','26','38','42','43','63','69','73','74'],'chef_lieu'=>'Lyon'], 'hauts-de-france' => ['nom'=>'Hauts-de-France', 'id_region'=>'32','deps'=>['02','59','60','62','80'],'chef_lieu'=>'Lille'], 'nouvelle-aquitaine' => ['nom'=>'Nouvelle-Aquitaine', 'id_region'=>'75','deps'=>['16','17','19','23','24','33','40','47','64','79','86','87'],'chef_lieu'=>'Bordeaux'], 'occitanie' => ['nom'=>'Occitanie', 'id_region'=>'76','deps'=>['09','11','12','30','31','32','34','46','48','65','66','81','82'],'chef_lieu'=>'Toulouse'], 'bretagne' => ['nom'=>'Bretagne', 'id_region'=>'53','deps'=>['22','29','35','56'],'chef_lieu'=>'Rennes'], 'grand-est' => ['nom'=>'Grand Est', 'id_region'=>'44','deps'=>['08','10','51','52','54','55','57','67','68','88'],'chef_lieu'=>'Strasbourg'], 'normandie' => ['nom'=>'Normandie', 'id_region'=>'28','deps'=>['14','27','50','61','76'],'chef_lieu'=>'Rouen'], 'pays-de-la-loire' => ['nom'=>'Pays de la Loire', 'id_region'=>'52','deps'=>['44','49','53','72','85'],'chef_lieu'=>'Nantes'], 'provence-alpes-cote-azur'=> ['nom'=>"Provence-Alpes-Côte d'Azur", 'id_region'=>'93','deps'=>['04','05','06','13','83','84'],'chef_lieu'=>'Marseille'], 'bourgogne-franche-comte' => ['nom'=>'Bourgogne-Franche-Comté', 'id_region'=>'27','deps'=>['21','25','39','58','70','71','89','90'],'chef_lieu'=>'Dijon'], 'centre-val-de-loire' => ['nom'=>'Centre-Val de Loire', 'id_region'=>'24','deps'=>['18','28','36','37','41','45'],'chef_lieu'=>'Orléans'], 'corse' => ['nom'=>'Corse', 'id_region'=>'94','deps'=>['2A','2B'],'chef_lieu'=>'Ajaccio'], 'dom' => ['nom'=>'Outre-Mer (DOM)', 'id_region'=>null,'deps'=>['971','972','973','974','976'],'chef_lieu'=>''], ]; $DEP_NOMS = [ '01'=>'Ain','02'=>'Aisne','03'=>'Allier','04'=>'Alpes-de-Haute-Provence', '05'=>'Hautes-Alpes','06'=>'Alpes-Maritimes','07'=>'Ardèche','08'=>'Ardennes', '09'=>'Ariège','10'=>'Aube','11'=>'Aude','12'=>'Aveyron', '13'=>'Bouches-du-Rhône','14'=>'Calvados','15'=>'Cantal','16'=>'Charente', '17'=>'Charente-Maritime','18'=>'Cher','19'=>'Corrèze','2A'=>'Corse-du-Sud', '2B'=>'Haute-Corse','21'=>"Côte-d'Or",'22'=>"Côtes-d'Armor",'23'=>'Creuse', '24'=>'Dordogne','25'=>'Doubs','26'=>'Drôme','27'=>'Eure', '28'=>'Eure-et-Loir','29'=>'Finistère','30'=>'Gard','31'=>'Haute-Garonne', '32'=>'Gers','33'=>'Gironde','34'=>'Hérault','35'=>'Ille-et-Vilaine', '36'=>'Indre','37'=>'Indre-et-Loire','38'=>'Isère','39'=>'Jura', '40'=>'Landes','41'=>'Loir-et-Cher','42'=>'Loire','43'=>'Haute-Loire', '44'=>'Loire-Atlantique','45'=>'Loiret','46'=>'Lot','47'=>'Lot-et-Garonne', '48'=>'Lozère','49'=>'Maine-et-Loire','50'=>'Manche','51'=>'Marne', '52'=>'Haute-Marne','53'=>'Mayenne','54'=>'Meurthe-et-Moselle','55'=>'Meuse', '56'=>'Morbihan','57'=>'Moselle','58'=>'Nièvre','59'=>'Nord', '60'=>'Oise','61'=>'Orne','62'=>'Pas-de-Calais','63'=>'Puy-de-Dôme', '64'=>'Pyrénées-Atlantiques','65'=>'Hautes-Pyrénées','66'=>'Pyrénées-Orientales', '67'=>'Bas-Rhin','68'=>'Haut-Rhin','69'=>'Rhône','70'=>'Haute-Saône', '71'=>'Saône-et-Loire','72'=>'Sarthe','73'=>'Savoie','74'=>'Haute-Savoie', '75'=>'Paris','76'=>'Seine-Maritime','77'=>'Seine-et-Marne','78'=>'Yvelines', '79'=>'Deux-Sèvres','80'=>'Somme','81'=>'Tarn','82'=>'Tarn-et-Garonne', '83'=>'Var','84'=>'Vaucluse','85'=>'Vendée','86'=>'Vienne', '87'=>'Haute-Vienne','88'=>'Vosges','89'=>'Yonne','90'=>'Territoire de Belfort', '91'=>'Essonne','92'=>'Hauts-de-Seine','93'=>'Seine-Saint-Denis', '94'=>'Val-de-Marne','95'=>"Val-d'Oise", '971'=>'Guadeloupe','972'=>'Martinique','973'=>'Guyane', '974'=>'La Réunion','976'=>'Mayotte', ]; // ── Slug depuis l'URL ───────────────────────────────────────────────────── $slug = preg_replace('/[^a-z0-9\-]/', '', strtolower($_GET['slug'] ?? '')); if (!isset($REGIONS[$slug])) { http_response_code(404); include dirname(__DIR__) . '/404.html'; exit; } $region = $REGIONS[$slug]; $nom = $region['nom']; $id_reg = $region['id_region']; $deps = $region['deps']; $year = (int)date('Y'); $y1 = $year - 1; // ── Données BDD (avec cache fichier 6h) ─────────────────────────────────── $cache_dir = dirname(__DIR__) . '/.cache_regions/'; $cache_file = $cache_dir . $slug . '.json'; if (!is_dir($cache_dir)) @mkdir($cache_dir, 0755, true); $data = null; if (file_exists($cache_file) && (time() - filemtime($cache_file)) < 21600) { $data = json_decode(file_get_contents($cache_file), true); // Invalider le cache si zéro (passage raté) if ($data && (int)($data['nb_reseaux'] ?? 0) === 0) { $data = null; } } if (!$data) { try { $pdo = getDB(); $dep_placeholders = implode(',', array_fill(0, count($deps), '?')); // Stats globales région $nb_reseaux = (int)$pdo->prepare("SELECT COUNT(*) FROM reseaux WHERE dep IN ($dep_placeholders)") ->execute($deps) ? $pdo->prepare("SELECT COUNT(*) FROM reseaux WHERE dep IN ($dep_placeholders)")->execute($deps) : 0; // Requêtes par DEP (plus fiable que id_region car format variable en BDD) // Générer toutes les variantes des codes dep (2 chiffres + 3 chiffres) // car orobnat stocke en 3 chiffres zéro-paddés pour la métropole $deps_all = []; foreach ($deps as $d) { $deps_all[] = $d; // '77' $n = preg_replace('/[A-Za-z]/', '', $d); $l = preg_replace('/[0-9]/', '', $d); $deps_all[] = str_pad($n, 3, '0', STR_PAD_LEFT) . $l; // '077' } $deps_all = array_unique(array_filter($deps_all)); $dep_placeholders = implode(',', array_fill(0, count($deps_all), '?')); $s_r = $pdo->prepare("SELECT COUNT(*) FROM reseaux WHERE dep IN ($dep_placeholders)"); $s_r->execute($deps_all); $nb_reseaux = (int)$s_r->fetchColumn(); $s_c = $pdo->prepare("SELECT COUNT(DISTINCT rc.insee) FROM reseau_communes rc JOIN reseaux r ON r.id=rc.reseau_id WHERE r.dep IN ($dep_placeholders)"); $s_c->execute($deps_all); $nb_communes = (int)$s_c->fetchColumn(); $nb_b = 0; $nb_nc = 0; foreach ([$year, $y1] as $y) { try { $s = $pdo->prepare("SELECT COUNT(*), SUM(CASE WHEN (conf_bacterio = 0 OR conf_physicochim = 0) THEN 1 ELSE 0 END) FROM `bulletins_{$y}` b JOIN reseaux r ON r.id=b.reseau_id WHERE r.dep IN ($dep_placeholders)"); $s->execute($deps_all); $row = $s->fetch(PDO::FETCH_NUM); $nb_b += (int)($row[0]??0); $nb_nc += (int)($row[1]??0); } catch (Exception $e) {} } $pct_conf = $nb_b > 0 ? round(($nb_b - $nb_nc) / $nb_b * 100, 1) : null; // Stats par département — chercher avec et sans zéro initial $stats_dep = []; foreach ($deps as $dep) { $nb_b_d = 0; $nb_nc_d = 0; $last_date_d = null; $last_ok_d = null; // Tenter les deux formes : '29' et '029', '75' et '075' // Variantes 2 et 3 chiffres $n = preg_replace('/[A-Za-z]/','', $dep); $l = preg_replace('/[0-9]/','', $dep); $dv_list = array_unique([$dep, str_pad($n,3,'0',STR_PAD_LEFT).$l]); $dv_ph = implode(',', array_fill(0, count($dv_list), '?')); // Historique sur 3 ans foreach ([$year, $y1, $year-2] as $y) { try { $s = $pdo->prepare("SELECT COUNT(*), SUM(CASE WHEN (b.conf_bacterio=0 OR b.conf_physicochim=0) THEN 1 ELSE 0 END), MAX(b.date_prelevement), MAX(CASE WHEN b.conf_bacterio=1 AND (b.conf_physicochim IS NULL OR b.conf_physicochim=1) THEN b.date_prelevement END) FROM `bulletins_{$y}` b JOIN reseaux r ON r.id=b.reseau_id WHERE r.dep IN ($dv_ph)"); $s->execute($dv_list); $rrow = $s->fetch(PDO::FETCH_NUM); $nb_b_d += (int)($rrow[0] ?? 0); $nb_nc_d += (int)($rrow[1] ?? 0); if (($rrow[2]??'') > ($last_date_d??'')) $last_date_d = $rrow[2]; if (($rrow[3]??'') > ($last_ok_d??'')) $last_ok_d = $rrow[3]; } catch (Exception $e) {} } // Statut instantané (dernier bulletin année courante) $sa_dep = null; try { $s2 = $pdo->prepare("SELECT b.conf_bacterio, b.conf_physicochim, b.date_prelevement FROM `bulletins_{$year}` b JOIN reseaux r ON r.id=b.reseau_id WHERE r.dep IN ($dv_ph) ORDER BY b.date_prelevement DESC LIMIT 1"); $s2->execute($dv_list); $sa_dep = $s2->fetch(PDO::FETCH_ASSOC); } catch (Exception $e) {} $stats_dep[$dep] = [ 'nb_b' => $nb_b_d, 'nb_nc' => $nb_nc_d, 'pct' => $nb_b_d > 0 ? round(($nb_b_d - $nb_nc_d) / $nb_b_d * 100, 1) : null, 'last_date' => $last_date_d ?? null, 'last_ok_date'=> $last_ok_d ?? null, 'statut_actuel' => $sa_dep, ]; } // Top 10 communes non conformes // nc_communes : année courante uniquement pour fraîcheur $nc_communes = []; try { $dp2 = implode(',', array_fill(0, count($deps_all), '?')); $s = $pdo->prepare(" SELECT c.nom, c.insee, r.dep, COUNT(*) AS nb_tot, SUM(CASE WHEN (b.conf_bacterio=0 OR b.conf_physicochim=0) THEN 1 ELSE 0 END) AS nb_nc, MAX(b.date_prelevement) AS last_date, MAX(CASE WHEN b.conf_bacterio=1 AND (b.conf_physicochim IS NULL OR b.conf_physicochim=1) THEN b.date_prelevement END) AS last_ok_date, MAX(b.conf_bacterio) AS last_conf_b, MAX(b.conf_physicochim) AS last_conf_p FROM `bulletins_{$year}` b JOIN reseaux r ON r.id=b.reseau_id JOIN reseau_communes rc ON rc.reseau_id=r.id JOIN communes c ON c.insee=rc.insee WHERE r.dep IN ($dp2) AND (b.conf_bacterio=0 OR b.conf_physicochim=0) GROUP BY c.insee, c.nom, r.dep ORDER BY last_date DESC LIMIT 20 "); $s->execute($deps_all); $nc_communes = $s->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) { $nc_communes = []; } // Top communes les plus recherchées $top_communes = []; try { $s = $pdo->prepare(" SELECT l.commune, l.insee, l.dep, COUNT(*) AS hits FROM logs_recherches l WHERE l.dep IN ($dep_placeholders) AND l.searched_at >= DATE_SUB(NOW(), INTERVAL 30 DAY) AND l.commune IS NOT NULL GROUP BY l.insee, l.commune, l.dep ORDER BY hits DESC LIMIT 8 "); $s->execute($deps_all); $top_communes = $s->fetchAll(PDO::FETCH_ASSOC); } catch (Exception $e) {} $data = compact('nb_reseaux','nb_communes','nb_b','nb_nc','pct_conf','stats_dep','nc_communes','top_communes'); file_put_contents($cache_file, json_encode($data)); } catch (Exception $e) { $data = ['nb_reseaux'=>0,'nb_communes'=>0,'nb_b'=>0,'nb_nc'=>0,'pct_conf'=>null,'stats_dep'=>[],'nc_communes'=>[],'top_communes'=>[]]; } } $pct_conf = $data['pct_conf']; $pct_nc = $pct_conf !== null ? round(100 - $pct_conf, 1) : null; $badge_col = $pct_nc === null ? '#6b7280' : ($pct_nc < 2 ? '#059669' : ($pct_nc < 5 ? '#d97706' : '#dc2626')); function slugDep(string $dep): string { global $DEP_NOMS; $nom = $DEP_NOMS[$dep] ?? $dep; $nom = iconv('UTF-8', 'ASCII//TRANSLIT', $nom); return preg_replace('/[^a-z0-9]+/', '-', strtolower($nom)) . '-' . $dep; } function slugCommune(string $nom, string $insee): string { $n = iconv('UTF-8', 'ASCII//TRANSLIT', $nom); return preg_replace('/[^a-z0-9]+/', '-', strtolower($n)) . '-' . $insee; } ?> Qualité de l'eau du robinet en Outre-Mer (DOM) 2026 — eaudurobinet.fr

Eau du robinet en Outre-Mer (DOM)

0 réseaux · 0 communes · données 2026

0
Bulletins analysés
0
Non conformes
5
Départements

Rechercher une commune en Outre-Mer (DOM)

Qualité de l'eau par département

Pourcentages calculés sur 2024–2026 (3 ans). Cliquez sur un département pour voir le statut à l'instant T.

L'eau potable en Outre-Mer (DOM)

La région Outre-Mer (DOM) compte 0 réseaux de distribution d'eau potable desservant 0 communes. Les données affichées proviennent de la base ARS du Ministère de la Santé, alimentée par les Agences Régionales de Santé (ARS).

Source : ARS, Ministère de la Santé. Données 2026. Mise à jour quotidienne.