From 1dd4d0c2888d3966a924fe195643644d6cb5c6b4 Mon Sep 17 00:00:00 2001 From: Pierre Date: Wed, 30 Sep 2026 13:00:00 +0000 Subject: [PATCH] =?UTF-8?q?TB=5FCartes.Adresse=5Fnetbird,=20suppression=20?= =?UTF-8?q?d'ID=5FBateau/Date=5Fbateau=20(obsol=C3=A8tes),=20Ouverture=5Fb?= =?UTF-8?q?dd=5Fbateau()=20r=C3=A9sout=20d=C3=A9sormais=20la=20g=C3=A9n?= =?UTF-8?q?=C3=A9ration=20active=20via=20TB=5FGenerations=5Fbateau=20(cf?= =?UTF-8?q?=20synth=C3=A8se=20=C2=A736)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/fonctions_bdd.php | 57 ++++++++++++++++++++++++++++++++++++++++ sql/adresse_netbird.sql | 14 ++++++++++ 2 files changed, 71 insertions(+) create mode 100644 sql/adresse_netbird.sql diff --git a/config/fonctions_bdd.php b/config/fonctions_bdd.php index 0f69575..e369d71 100644 --- a/config/fonctions_bdd.php +++ b/config/fonctions_bdd.php @@ -83,6 +83,11 @@ function Ouverture_bdd($bdd_host = BDD_HOST, $bdd_user = BDD_USER, $bdd_password } + + + + +/* //************************************************************************************************************ // Fonction : Ouverture de la BDD d'un bateau // Reçoit : L'ID du bateau (sa clé_primaire dans TB_Bateaux) @@ -93,6 +98,58 @@ function Ouverture_bdd_bateau($id_bateau) Ouverture_bdd(BDD_BATEAUX_HOST.":".BDD_BATEAUX_PORT, BDD_BATEAUX_USER, BDD_BATEAUX_PASSWORD, BDD_BATEAUX_DATABASE_PREFIXE.$id_bateau); } +*/ +//************************************************************************************************************ +// Fonction : Ouverture de la BDD ACTIVE d'un bateau (cf synthèse §35-36 : une base par génération, jamais +// supprimée ; celle-ci résout et ouvre la génération actuellement active). +// Reçoit : L'ID du bateau (sa clé_primaire dans TB_Bateaux) +// Retour : true si la connexion a réussi, false si aucune génération active n'a été trouvée pour ce bateau +// (bateau affecté mais n'ayant encore jamais transmis d'archive - CE N'EST PAS une erreur de +// connexion, à la page appelante d'afficher un message adapté). +//************************************************************************************************************ +function Ouverture_bdd_bateau($id_bateau) +{ + // Connexion dédiée et temporaire à la BDD principale, pour résoudre le nom de la génération active - ne + // jamais utiliser $_SESSION['db'] ici : elle peut déjà pointer vers la BDD d'un AUTRE bateau, ouverte par + // un appel précédent à cette même fonction. + $db_principale = new mysqli(BDD_HOST, BDD_USER, BDD_PASSWORD, BDD_DATABASE); + if ($db_principale->connect_error) + { + Enregistrement_log("\tOuverture_bdd_bateau : échec de connexion à la BDD principale pour résoudre la génération active", __FILE__, __LINE__); + return false; + } + + $requete = "SELECT Nom_base FROM TB_Generations_bateau WHERE ID_Bateau=? AND Date_fin IS NULL"; + $stmt = $db_principale->prepare($requete); + $stmt->bind_param('i', $id_bateau); + $stmt->execute(); + $stmt->bind_result($nom_base); + $trouve = $stmt->fetch(); + $stmt->close(); + $db_principale->close(); + + if (!$trouve) + { + // Aucune génération active : ce bateau n'a encore jamais transmis d'archive. + return false; + } + + Ouverture_bdd(BDD_BATEAUX_HOST.":".BDD_BATEAUX_PORT, BDD_BATEAUX_USER, BDD_BATEAUX_PASSWORD, $nom_base); + return true; +} + + + + + + + + + + + + + diff --git a/sql/adresse_netbird.sql b/sql/adresse_netbird.sql new file mode 100644 index 0000000..c22fbc9 --- /dev/null +++ b/sql/adresse_netbird.sql @@ -0,0 +1,14 @@ +-- ============================================================================ +-- TB_Cartes.Adresse_netbird : nécessaire pour joindre l'API du bateau (accès +-- "live" PWA et script cron d'archivage) via NetBird. Résolue systématiquement +-- via l'affectation active (TB_Affectations_bateau), jamais stockée +-- directement sur TB_Bateaux - un remplacement de boîtier met alors à jour +-- les deux usages (archivage + accès live) d'un seul geste (cf synthèse §36). +-- +-- TB_Cartes.ID_Bateau et Date_bateau (ancien mécanisme d'affectation directe, +-- confirmé obsolète, plus écrit par aucun code) ne sont volontairement pas +-- touchés ici - suppression éventuelle à traiter séparément, en connaissance +-- de cause, si souhaité. +-- ============================================================================ +ALTER TABLE `TB_Cartes` + ADD COLUMN `Adresse_netbird` VARCHAR(45) NULL DEFAULT NULL COMMENT 'Adresse IP NetBird du boîtier, pour joindre son API (shipheart_api)' AFTER `Adresse_mac`;