Page 1 sur 1

[resolu]update avec un id venant d'une autre table

Posté : 06 janv. 2006, 22:36
par gesualda
Bonjour à tous,

Comment puisje faire une update d'une table avec par exemple le champ nom provenant d'une autre table. Exemple:

j'ai une table qui contient : civil_tbl
- id_abo
- nom
- prenom
- age

J'ai une autre table: descrip_tbl
- id_abo
- nombre
- musique

Voila je voudrais faire un update de la descript_tbl par rapport à la colonne "nom" de la table civil_tbl
"UPDATE descrip_tbl SET id_abo='".$_SESSION['id_abo']."', nombre='".$_POST['nombre']."', musique='".$_POST['musique']."' WHERE nom='".$_SESSION['nom']."'"; 
A savoir que la première table sert à l'enregistrement et la seconde à une description quelconque faite ultérieurement.

Merci de votre aide :D

Posté : 07 janv. 2006, 00:01
par zeus
Si je comprend bien, le champs id_abo de la table describ_tbl est à la fois la clé primaire de la table et une clé étrangère vers la table civil_tbl ?

C'est une erreur de modélisation

Je m'explique :
si tu as plusieurs lignes dans la table descib_tbl qui pointent vers une ligne de la table civil_tbl, la valeur de describ_tbl.id_abo devra toujours être la valeur de civil_tbl.id_abo ce qui est impossible vu que les lés primaires doivent être unique.

La bonne modélisation serait :
descrip_tbl
- id_describ
- id_abo
- nombre
- musique

Sinon, si tu veux conserver les relations entre les tables, il faut que tu modifi les id_abo de describ_tbl après avoir fait l'update de civil_tbl