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 :

Insertion de données multi-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 averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut Insertion de données multi-tables
    bonjour,

    parfait débutant, j'essaie tant bien que mal de trouver une solution à mon problème:

    Prenons un exemple.
    Ma base de données comporte 3 tables :

    1- table "INVITATION" (ID, nom) / 2 - table "AMIS" (ID, nomAmis, texteA, invitationID (jointure à l'ID de "INVITATION")) / 3 - table "FAMILLE" (ID, nomFamille, texteB, invitationID (jointure à l'ID de "INVITATION")

    ...

    dans mon formulaire

    champ nom (table INVITATION)
    champ texteA (table AMIS)
    champ texteB (table FAMILLE)...


    lorsque je dois insérer les données dans ces différentes tables,

    1 - l'ID de la table INVITATION s'incrémente automatiquement
    2 - l'ID de mes autres tables aussi
    mais comment écrire que l'on veut que la valeur de l'invitationID doit être égale à ID de la table INVITATION ?

    Je suis perdu...

    merci

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais ton insertion dans invitation.
    Tu recuperes l'id autoincrementé avec mysql_last_insert_id().
    Et voila tu peux mettre l'id dans les autres tables.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    bonsoir,

    ceci est mon code, à quel moment dois-je inclure le mysql_last_insert_id()
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ajoutref")) {
      $insertSQL = sprintf("INSERT INTO invitation (nom, lieu, salle, heure) VALUES (%s, %s, %s, %s)",
                           GetSQLValueString($_POST['nom'], "text"),
                           GetSQLValueString($_POST['lieu'], "text"),
                           GetSQLValueString($_POST['salle'], "text"),
                           GetSQLValueString($_POST['heure'], "text"));
     
      mysql_select_db($database_interface_c14, $interface_c14);
      $Result1 = mysql_query($insertSQL, $interface_c14) or die(mysql_error());
     
      $insertGoTo = "../index.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
     
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "ajoutref")) {
      $insertSQL = sprintf("INSERT INTO amis (nom, prenom, sex, invitationID) VALUES (%s, %s, %s, %s)",
                           GetSQLValueString($_POST['nom'], "text"),
                           GetSQLValueString($_POST['prenom'], "text"),
                           GetSQLValueString($_POST['sex'], "text"),
                           GetSQLValueString($_POST['invitationID'], "text"));
     
      mysql_select_db($database_interface_c14, $interface_c14);
      $Result1 = mysql_query($insertSQL, $interface_c14) or die(mysql_error());
     
      $insertGoTo = "../index.php";
      if (isset($_SERVER['QUERY_STRING'])) {
        $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
        $insertGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $insertGoTo));
    }
    merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Entre
    Tu fais ton insertion dans invitation.
    et
    Et voila tu peux mettre l'id dans les autres tables.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    merci

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Par défaut
    rebonjour,

    LAST_INSERT_ID() marche très bien dans le cas d'une seule table reliée à une seule autre.
    Mais, dans le cas de plusieurs tables reliées à une seule ?

    Lorsque j'insère LAST_INSERT_ID() à une de ces tables, la table suivante insère l'ID de la table précédente... c'est ce que je voudrais éviter...

    j'ai autoincrémenté toutes mes tables... est-ce que je suis obligé de supprimer toutes mes incrémentations de toutes mes tables reliées sauf la première pour ne récupérer qu'un seul et unique ID?

    merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/05/2012, 00h35
  2. problème d'insertion de données dans table
    Par loic20h28 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 31/01/2008, 17h26
  3. insertion de données dans table mySQL
    Par kumo dans le forum ASP
    Réponses: 13
    Dernier message: 18/12/2007, 21h34
  4. [MySQL] Problème insertion de données dans table Mysql
    Par Malcolm78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/10/2007, 17h25
  5. [MySQL] Problème d'insertion de données dans table d'associations
    Par Yukhaa dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 07/02/2006, 17h10

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