Se connecter avec
S'enregistrer | Connectez-vous
Votre question

Conception d'un BDD et jointure

Tags :
  • Web
  • Interface
  • Programmation
Dernière réponse : dans Programmation
Partagez
5 Mars 2011 08:45:37

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,

Autres pages sur : conception bdd jointure

a b L Programmation
7 Mars 2011 11:40:30

Salut,

Mais tout cela est bien vu. ;) 
A supposer que tu exploites une base MySQL, Chercherais-tu la fonction LAST_INSERT_ID() ?
m
0
l
9 Mars 2011 15:22:00

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 :
  1. $stTable = mysql_fetch_array(mysql_query("SHOW TABLE STATUS LIKE 'nomDeLaTable' "));
  2. $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 ).
m
0
l
Contenus similaires
a b L Programmation
10 Mars 2011 09:26:24

M'enfin Ludo, on cherche le dernier enregistrement, pas le prochain !
m
0
l
10 Mars 2011 10:17:13

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

Spoiler
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:  )
m
0
l