From 5c43bf9e7c8793f0015f525c949ba1ee3bc54dbc Mon Sep 17 00:00:00 2001 From: voxan Date: Wed, 21 Oct 2026 22:17:26 +0200 Subject: [PATCH] Correction SQL --- admin/map_layers.php | 119 ++++++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/admin/map_layers.php b/admin/map_layers.php index cf66cdc..0ec7d73 100644 --- a/admin/map_layers.php +++ b/admin/map_layers.php @@ -9,8 +9,8 @@ * suppression d'une couche. * * Hypothese de schema : - * map_layers(id, name, layer_key, color, is_visible, sort_order, - * description) + * map_layers(id, name, layer_key, color, is_visible, sort_order, + * description) */ declare(strict_types=1); @@ -42,21 +42,22 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $description = trim((string)($_POST['description'] ?? '')); if ($name === '' || !preg_match('/^[a-z0-9_\-]+$/', $layerKey)) { - $feedback = 'Nom ou clé de couche invalide (clé··: lettres minuscules, chiffres, - et _ uniquement).'; + $feedback = 'Nom ou clé de couche invalide (clé: lettres minuscules, chiffres, - et _ uniquement).'; $feedbackType = 'error'; } elseif ($color === null) { $feedback = 'Couleur invalide (format attendu : #rrggbb).'; $feedbackType = 'error'; } else { try { + // Correction de l'erreur MySQL 1093 avec une table dérivée (sous-requête AS m2) $stmt = $db->prepare( 'INSERT INTO map_layers (name, layer_key, color, is_visible, sort_order, description) - VALUES (?, ?, ?, 1, (SELECT COALESCE(MAX(sort_order), 0) + 1 FROM map_layers AS m2), ?)' + VALUES (?, ?, ?, 1, (SELECT COALESCE(MAX(m2.sort_order), 0) + 1 FROM (SELECT sort_order FROM map_layers) AS m2), ?)' ); $stmt->execute([$name, $layerKey, $color, $description]); $feedback = 'Couche créée.'; } catch (Throwable $e) { - $feedback = 'Erreur lors de la création (clé·· déjà utilisée ?) : ' . $e->getMessage(); + $feedback = 'Erreur lors de la création (clé déjà utilisée ?) : ' . $e->getMessage(); $feedbackType = 'error'; } } @@ -65,7 +66,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($layerId) { $stmt = $db->prepare('UPDATE map_layers SET is_visible = 1 - is_visible WHERE id = ?'); $stmt->execute([$layerId]); - $feedback = 'Visibilité·· mise à jour.'; + $feedback = 'Visibilité mise à jour.'; } } elseif ($action === 'update_color') { $layerId = filter_input(INPUT_POST, 'layer_id', FILTER_VALIDATE_INT); @@ -82,12 +83,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $layerId = filter_input(INPUT_POST, 'layer_id', FILTER_VALIDATE_INT); $confirmed = isset($_POST['confirm']) && $_POST['confirm'] === '1'; if (!$confirmed || !$layerId) { - $feedback = 'Suppression refusé··e : confirmation manquante.'; + $feedback = 'Suppression refusée : confirmation manquante.'; $feedbackType = 'error'; } else { $stmt = $db->prepare('DELETE FROM map_layers WHERE id = ? LIMIT 1'); $stmt->execute([$layerId]); - $feedback = $stmt->rowCount() > 0 ? 'Couche supprimé··e.' : 'Couche introuvable.'; + $feedback = $stmt->rowCount() > 0 ? 'Couche supprimée.' : 'Couche introuvable.'; } } } @@ -107,7 +108,7 @@ $user = current_admin_username();

Couches cartographiques

-

Gé··rez les couches affich ées sur la carte (visibilité··, couleur, ordre). Toute suppression demande une confirmation explicite.

+

Gérez les couches affichées sur la carte (visibilité, couleur, ordre). Toute suppression demande une confirmation explicite.

@@ -120,10 +121,10 @@ $user = current_admin_username();
-