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 :

insérer des données dans 2 tables


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 25
    Points
    25
    Par défaut insérer des données dans 2 tables
    Bonjour,

    Vous allez me dire qu'il n'y a rien de plus simple, mais voilà question.
    Je souhaiterais savoir comment faire pour insérer des données dans plusiseurs tables.

    Je suis en train de réaliser un forum pour lequel j'ai les tables "messages" et "discussion". J'arrive à insérer ce qu'il faut dans ma table "messages" , mais il me faudrait insérer également d'autres données dans la table "discussion" pour que le forum fonctionne, et que tout soit relié.
    Seulement je ne sais pas comment exécuter 2 requetes INSERT à la suite pour 2 tables différentes.

    J'ai essayé de faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //création de la requête SQL- insertion des champs dans la BDD 
      $requete = "INSERT INTO message (idMessage, Discussion_idDiscussion, Message_idMessage, Sujet, Contenu, FichierAttache, DateCreation,TypeMessage_idTypeMessage, Qualifiant_idQualifiant, Utilisateur_idUtilisateur) VALUES ('','$idDiscussion','$Message_idMessage','$Sujet','$Contenu','$FichierAttache', now(), '$LibelleTypeMessage', '$LibelleQualifiant','$Utilisateur_idItilisateur')" ;
     
     
     $requete .= "INSERT INTO discussion (idDiscussion, Forum_idForum) VALUES ('$idDiscussion', '$Forum_idForum')"; 
     
    // exécution de la requête : on envoie la requête au serveur qui nous retourne le résultat 
     
    if ($result = mysql_query ($requete)) 
        { 
        echo "Votre message est enregistré"; 
        } 
    else 
    { 
        echo mysql_error(); 
    }
    Mais ça ne fonctionne pas.... La page marche comme si il n'y avait que la première requête.


    Merci par avance de votre aide!

  2. #2
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 75
    Points : 61
    Points
    61
    Par défaut
    Tu peux creer 2 requete pour commencer je pense que ce sera le plus simple pour toi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //création de la requête SQL- insertion des champs dans la BDD 
      $requete = "INSERT INTO message (idMessage, Discussion_idDiscussion, Message_idMessage, Sujet, Contenu, FichierAttache, DateCreation,TypeMessage_idTypeMessage, Qualifiant_idQualifiant, Utilisateur_idUtilisateur) VALUES ('','$idDiscussion','$Message_idMessage','$Sujet','$Contenu','$FichierAttache', now(), '$LibelleTypeMessage', '$LibelleQualifiant','$Utilisateur_idItilisateur')" ;
     
     
     $requete2= "INSERT INTO discussion (idDiscussion, Forum_idForum) VALUES ('$idDiscussion', '$Forum_idForum')"; 
     
    // exécution de la requête : on envoie la requête au serveur qui nous retourne le résultat 
     
    if ((mysql_query($requete) && mysql_query($requete2)) 
        { 
        echo "Votre message est enregistré"; 
        } 
    else 
    { 
        echo mysql_error(); 
    }

  3. #3
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    C'est dommage que mysql_query n'envoie qu'une seule requete, meme si elles sont separees par des point-virgules.

    Vous pouvez utiliser une fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function multi_query ($sql) {
      $aSql = explode(';', $sql);
      foreach ($aSql as $sql) {
        mysql_query($sql);
      }
    }
    Sinon, on ne peut pas effectuer de multiples insertions dans des tables differrentes a ce que je saches.

Discussions similaires

  1. comment insérer des données dans la table via le formulaire
    Par justintak dans le forum Visual Studio
    Réponses: 1
    Dernier message: 16/10/2009, 15h40
  2. Réponses: 1
    Dernier message: 23/03/2009, 13h56
  3. [MySQL] Insérer des données dans une table, mais ce n'est pas une table USER
    Par amerex dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/08/2008, 00h01
  4. Access: Insérer des données dans une table acces
    Par Malika_AL dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/01/2008, 22h41
  5. [SQL] Insérer des données dans une table
    Par wonga dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/08/2007, 12h00

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