IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[Conception] Problème de requete update


Sujet :

PHP & Base de données

  1. #21
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Citation Envoyé par Cyberbob002
    Normal, le nom de ton emprunteur vaut toujours "test" dans ta requête !!
    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é"

  2. #22
    Invité(e)
    Invité(e)
    Par défaut
    en effet il faut mettre un nom d'emprunteur valide et existant dans la table emprunteur


  3. #23
    Membre éprouvé Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Par défaut
    Citation Envoyé par gseverin
    en effet il faut mettre un nom d'emprunteur valide et existant dans la table emprunteur
    Un nom de film plutot non ?

  4. #24
    Invité(e)
    Invité(e)
    Par défaut
    Citation Envoyé par Cyberbob002
    Un nom de film plutot non ?
    oui en effet , je mouline dans le semoule

  5. #25
    Membre éprouvé Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Par défaut
    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.

  6. #26
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Citation Envoyé 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 champs

    Merci à tous !

  7. #27
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    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 :

    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."')
    Voilà, en espérant que cela pourra t'aider !

    A+++

  8. #28
    Membre éprouvé Avatar de Cyberbob002
    Inscrit en
    Mai 2003
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 140
    Par défaut
    Citation Envoyé par djayp
    Ainsi, un film pourra être emprunté par plusieurs personnes
    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.

  9. #29
    Membre chevronné
    Avatar de djayp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 295
    Par défaut
    Effectivement, en fait tout dépend de l'objectif de la base de données... ;-)

  10. #30
    Membre éclairé Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Par défaut
    Citation Envoyé par djayp
    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 :

    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."')
    Voilà, en espérant que cela pourra t'aider !

    A+++
    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 ?

Discussions similaires

  1. probléme de requete update
    Par baadi dans le forum C#
    Réponses: 1
    Dernier message: 28/05/2013, 13h56
  2. [MySQL] Problème syntaxe requete UPDATE
    Par stefsas dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/02/2010, 20h00
  3. problème avec requete update
    Par nicolasferraris dans le forum ASP
    Réponses: 2
    Dernier message: 01/04/2008, 11h41
  4. Réponses: 5
    Dernier message: 14/01/2008, 09h59
  5. [MySQL] Problème de requete UPDATE
    Par Luffy49 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 30/12/2007, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo