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

Langage SQL Discussion :

Insérer sur deux tables selon clé Mysql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Par défaut Insérer sur deux tables selon clé Mysql
    Bonjour.

    Après un petit tour dans les FAQs je n'ai pas trouvé de réponse (avec MySQL 5.0)
    Voici ma question :

    membres(id,age,sexe,pays)
    photos(id,fichier1,fichier2)
    id membre est clé primaire autoincrement
    id photos est unique.

    Comment récupérer l'id de membres pour le placer dans l'id de photos lors d'un insert de membre ? Chaque membre peut avoir de 0 à 2 photos.

    J'ai essayé ça mais je bloque:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO membres(age,sexe,pays) //id autoincrement
    VALUES ('$age','$sexe','$pays')
     
    INSERT INTO photos (id,photo1) // comment faire correspondre les 2 id ?
    VALUES ('$photo');

    J'aurai instinctivement pensé à un truc de ce genre, mais hélas pour moi la syntaxe n'est pas la bonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO membres,photos
    VALUES ('blabla') 
    VALUES ('blublu')
    Merci de bien vouloir partager votre science

  2. #2
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    Salut, je te propose ceci mais sans savoir si cela fonctionne vraiment, il faudra tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO photo (id) VALUES (SELECT id FROM membres);
    Avec cela, il me semble que ca va t'insérer tout les id de membres dans photo mais c'est surement à améliorer. Mais c'est un début de piste

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Par défaut
    Merci j'essaie


    EDIT: Non, ça ne marche, pas. Tant pis je vais essayer de récupérer l'id en php à moins que je ne trouve en soluce en SQL pur...

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par griese
    Salut, je te propose ceci mais sans savoir si cela fonctionne vraiment, il faudra tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO photo (id) VALUES (SELECT id FROM membres);
    Avec cela, il me semble que ca va t'insérer tout les id de membres dans photo mais c'est surement à améliorer. Mais c'est un début de piste
    Votre syntaxe n'est pas bonne : http://sql.developpez.com/sqlaz/dml/#L1.5

    Ralfman68 >> merci d'indiquer votre SGBD et sa version comme indiqué dans les règles du forum

  5. #5
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    Je savais que c'était quelque chose comme ça mais j'étais pas sur de la syntaxe. Merci pour la précision

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Par défaut
    En effet, ça marche merci à vous.

    J'aurai une question subsidiaire :

    pour des raisons d'intégrité de ma base, est-il obligatoire de mettre ma requête entre START TRANSACTION et COMMIT ?

  7. #7
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    Pour le COMMIT si tu es tout seul à travailler sur ta base, ça ne sert à rien. Mais si vous êtes plusieurs c'est préférable pour éviter les que vous soyez plusieurs à modifier la base en même temps.

Discussions similaires

  1. [MySQL] [MySQL] Compter sur deux tables
    Par athome dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/06/2010, 13h59
  2. requete sur deux tables mysql
    Par kaking dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/11/2008, 09h38
  3. Requete mysql : select sur deux tables
    Par IP-Fix dans le forum Requêtes
    Réponses: 9
    Dernier message: 12/11/2008, 16h03
  4. Réponses: 14
    Dernier message: 04/12/2006, 11h22
  5. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53

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