Oui c'est un test en dur... donc c'est normal... Et logiquement si ça marchait j'aurait "test" comme emprunteur et non pas "Non emprunté"Envoyé par Cyberbob002
Oui c'est un test en dur... donc c'est normal... Et logiquement si ça marchait j'aurait "test" comme emprunteur et non pas "Non emprunté"Envoyé par Cyberbob002
en effet il faut mettre un nom d'emprunteur valide et existant dans la table emprunteur
![]()
oui en effet , je mouline dans le semouleEnvoyé par Cyberbob002
![]()
D'ailleurs, il aurait été plus "logique" et plus simple de mettre l'ID du film plutot que le nom dans la table emprunteur. Moins d'erreurs possibles et mise à jour automatique en cas de modification du nom du film.
Très juste ! Ma base est pas top, faudra que je la refasse comme il faut, sinon ça marche là, c'est que tout mes test avaient un peu chamboulé les enregistrements de la table emprunteur notamment en me faisant sauter des champsEnvoyé par Cyberbob002
Merci à tous !![]()
Salut,
quelques remarques et propositions...
Tes requetes UPDATE ne peuvent fonctionner car tu essaies de mettre à jour l'identifiant du film (SET numfilm=null) alors que d'après ta table MySQL, cet identifiant ne doit pas être à null (`numfilm` int(11) NOT NULL auto_increment). Par ailleurs en théorie tu n'es pas censé mettre à jour identifiant qui sert à autre chose.
En fait, pour ton problème il manque certainement une table intermédiaire. En effet il faut distinguer :
- les films
- les emprunteurs
- l'emprunt de film
tu auras donc 3 tables :
- emprunteur (#numemp, nomemp)
- film (#numfilm, titrefilm, etc...)
- emprunt (#numfilm,#numemp)
Ainsi, un film pourra être emprunté par plusieurs personnes et une personne pourra emprunter plusieurs films.
Ensuite, il faut mettre à jour tes tables. Pour cela, il faut se servir de l'identifiant unique (clé primaire) qui sert à cela, et non du titre du film qui lui peut être modifié !
Tu auras donc les requêtes suivantes :
Voilà, en espérant que cela pourra t'aider !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 // pour le film UPDATE films SET nomfilm='".$titre."', genrefilm='".$genre."', posfilm='".$position."' WHERE numfilm='".$numfilm."' "; // pour l'emprunteur UPDATE emprunteur SET nomemp='".$emprunteur."', nomfilm=null WHERE numemp='".$numemp."' "; // pour le/les emprunt(s) : on supprime d'abord tous les emprunts de la personne, puis on ajoute à jour les nouveaux DELETE FROM emprunt WHERE numemp='".num_emprunt."' INSERT INTO emprunt (numemp,numfilm) SET ('".$numemp."','".$numfilm."')
A+++
Envoyé par djayp
Ca me parrait difficile ! ou alors ils sont complices
C'est une relation 1<->1 donc pas besoin d'une troisième table.
Si il n'y a pas besoin d'historique mais juste de savoir qui a le film à un instant T ça complique un peu la tâche pour pas grand chose je trouve.
Effectivement, en fait tout dépend de l'objectif de la base de données... ;-)
Oui ça m'aide beaucoup mais comment puis je faire avec phpmyadmin svp ? J'ai du mal à mettre en place les contraintes avec ça faut il que je reprenne ma base de 0 ?Envoyé par djayp
Partager