Conception d'un BDD et jointure

  • Auteur de la discussion Luc_art
  • Date de début

Luc_art

Nouveau membre
Bonjour !

Je viens de parcourir le forum et j'ai trouvé pas mal de données sur les jointures mais une question me bloque pas mal...

Je dois créer une interface de gestion (ajout/suppression) de données pour une association et je bloque (déjà!) au niveau de sa conception...

En fait, j'ai considéré avoir trois tables :
- adhérents (id_adherent, nom, prenom, date de naissance, date d'inscription)
- activités (id_activite, activite)
- statuts (id_statut, statut)

La "spécificité" de ma base c'est que les adhérents peuvent faire plusieurs activités et les activités avoir plusieurs adhérents tandis qu'un adhérent n'a qu'un seul statut (membre, secrétaire, etc...).

J'ai parcourut le forum et vu que dans le cas des tables activités et adhérents il faut que je créé une table de jointure entre les deux (avec comme champs leurs id respectifs)... ai-je bien compris :-// ?

Le problème, c'est qu'ensuite, s'il faut avoir une table de jointure, je ne sais pas la gérer dans mon interface de gestion..
Mon interface se résume à des formulaires classiques qui mettent à jour mes tables... du coup, est-ce que je peux, avec un seul formulaire, mettre à jour deux, trois tables en même temps ?

Par exemple inscrire les données suivante dans la base en une mise à jour :
Nom, prénom, date de naissance et date d'inscription pour la table adhérents
activité pour la table activités
statut pour la table statut
+ id_activite et id_adhérent pour la table "jointe" ?? (comment récupérer ces données qui sont auto incrémenté lors de la création ??)

Merci d'avance pour votre aide, je débute et je suis un peu perdu :-//

Bonne journée,
 

zeb

Modérateur
Salut,

Mais tout cela est bien vu. ;)
A supposer que tu exploites une base MySQL, Chercherais-tu la fonction LAST_INSERT_ID() ?
 

LudoTools

Expert
Le nouvel enregistrement sera dans ce cas : LAST_INSERT_ID() + 1 ...

Sinon, perso, pour récupérer la valeur du prochain enregistrement dans une table (donc la valeur de l'autoincrément), je passe par :
Code:
$stTable = mysql_fetch_array(mysql_query("SHOW TABLE STATUS LIKE 'nomDeLaTable' "));
$prochain_id = str_pad($statutTable['Auto_increment'], 5, "0", STR_PAD_LEFT);
str_pad me récupère la valeur de l'autoincrément formaté de la sorte : 0000x
(5 chiffres, avec des 0-zéro- à gauche ; exemple, prochain ID = 123, je récupère : 00123 ).
 

zeb

Modérateur
M'enfin Ludo, on cherche le dernier enregistrement, pas le prochain !
 

LudoTools

Expert
:ange: no comment...
A la relecture, effectivement, les enregistrements sont déjà dans la base de données...

Mais bon, comme j'aime bien avoir raison ( :D ), imagine que l'adhérent ne soit pas encore inscrit... là, tu peux te servir de mon option afin d'avoir l'ID avant d'enregistrer et le renseigner dans les autres tables... imagine aussi que tu ai besoin de l'ID pour un autre traitement... et si l'adhérent est une chauve-souris, hein ? Tu connais l'histoire, non ?... ben demande à Bigard :pt1cable: )
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 987
Membres
1 586 385
Dernier membre
beep84
Partager cette page
Haut