TB_Cartes.Adresse_netbird, suppression d'ID_Bateau/Date_bateau (obsolètes), Ouverture_bdd_bateau() résout désormais la génération active via TB_Generations_bateau (cf synthèse §36)

This commit is contained in:
2026-09-30 13:00:00 +00:00
parent d12812e414
commit 1dd4d0c288
2 changed files with 71 additions and 0 deletions
+57
View File
@@ -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 // Fonction : Ouverture de la BDD d'un bateau
// Reçoit : L'ID du bateau (sa clé_primaire dans TB_Bateaux) // 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); 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;
}
+14
View File
@@ -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`;