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 :

php et liaison de tables [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Par défaut php et liaison de tables
    Voila j'ai un petit probleme, que j'ai plus ou moins résolu mais la solution me semble tordu! J'ai plusieurs tables dans ma base de donnée, dont une "RECETTE"(identifiant "numrecette"), une autre "INGREDIENT"(identifiant "numingredient"). Une recette comprends plusieurs ingredient donc j'ai aussi une table "CONTIENT"(identifiants "numrecette+numingredient) qui note aussi la quantité pour chaque ingredient et chaque recette.
    L'utilisateur peut saisir les recettes. Donc dans mon code, j'ai fait en sorte d'ecrire dans la table les données saisies, respectueusement dans RECETTE et INGREDIENT. Mais pour faire la liaison etre les deux (et pouvoir afficher quel ingredient va dans quelle recette) je refais une requette en récuperant les numingredient et numrecette qui viennent d'etre uploadé (ils sont en incrementation automatique), et ensuite j'inscrit numrecette et numingredient dans ma table CONTIENT ainsi que la quantité.
    J'espere que c'est assez clair. En gros je trouve cela un peu tordu et je pense qu'il y a un moyen de préciser dans MySQL que des tables sont liés mais je ne le connai pas. Pourrais-je avoir un debut de réponse ou une piste pour que je puisse faire des recherches? Merci a vous =)

  2. #2
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    Ce n'est pas si tordu que ça.
    Je ne vois qu'un seul problème : pour récuperer les identifiants des recettes et ingrédients qui viennent d'être inserés, ne fais pas de requete SQL,
    A la place utilise mysql_insert_id() ça sera beaucoup plus sûr.

    Sinon, pour ce qui est d'indiquer à mysql que des tables sont liées, tu peux le faire en déclarant des clés étrangères, mais cela ne changera rien à ton code PHP dans le cas présent.
    Ca te permet simplement d'avoir une BD plus solide qui gère quelques contraintes d'integrités, nottament grâce aux clauses "on update/delete cascade/restrict" (v. specs SQL)

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Par défaut
    merci tu me sauve la v.. euh bcp de ttemps

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Par défaut
    ah par contre quand on passe un champ en foreign key comment c'est symbolisé? je ne vois pas de différence avant et apres?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    386
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 386
    Par défaut
    Je crois que mes foreign key n'ont pas du tout marché car mes requetes multi table ne marchent pas et si je les décompose ça marche. Voila ma syntaxe de foreign key :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE CONTIENT
    ADD CONSTRAINT FK_CONTIENT1 FOREIGN KEY (numingredient) REFERENCES INGREDIENT(numingredient)
    (executable à l'infini d'ailleur, pas de message d'erreur)
    J'ai ces trois tables:
    INGREDIENT(numingredient, nomingredient)
    RECETTE(numrecette, nomrecette, dureerecette, descriptionrecette)
    CONTIENT(numrecette#, numingredient# , qteingredient)
    et ma requete est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "
    	"SELECT INGREDIENT.numingredient
    	FROM CONTIENT, INGREDIENT
    	WHERE CONTIENT.numingredient = INGREDIENT.numingredient
                 AND CONTIENT.numrecette =".$numrecette
    (ou $numrecette est egal a la recette dont on veut afficher les ingredients)
    Quelqu'un voit l'erreur?

  6. #6
    Membre émérite Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Par défaut
    Non, je ne vois pas d'erreur à priori.
    Quel est le problème ?
    Qu'est-ce qui ne marche pas ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête : Liaison de table
    Par ghan77 dans le forum Bases de données
    Réponses: 5
    Dernier message: 09/12/2005, 15h45
  2. Liaison entre tables
    Par Thierry69800 dans le forum Access
    Réponses: 1
    Dernier message: 20/11/2005, 23h19
  3. [données externes] liaison de tables
    Par tiptop dans le forum Access
    Réponses: 9
    Dernier message: 21/10/2005, 17h57
  4. Problèmes de liaisons entre tables ...
    Par Mangun dans le forum Access
    Réponses: 2
    Dernier message: 28/09/2005, 11h35
  5. liaison deux tables unilatéral
    Par atunam dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/04/2004, 22h01

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