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 d'un identifiant auto-incrementé dans une autre table


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut Insertion d'un identifiant auto-incrementé dans une autre table
    Bonjour,

    j'ai crée une bdd avec deux tables.
    l'une contient des informations générales sur des textes et lautre contien les locuteurs de ces textes.

    il peut donc y avoir plusieurs locuteurs pour un 1 texte

    la premiere table sappelera header
    la seconde locuteurs

    dans ma 1ère table jai un champs id_fiche qui s'autoincrémente. mon souhait serait d'avoir les mêmes valeurs dans la table locuteurs pour pouvoir relier les informations dans les requetes.
    j'ai tenté de récupérer la valeur de id_fiche mais étant donné que ce champ s'autoincrémente j'ai un peu de mal.

    je pense qu'il doit y avoir une solution simple mais je lignore merci

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Revenons au modèle de données...

    Tu as dit :
    Citation Envoyé par knebhi Voir le message
    il peut donc y avoir plusieurs locuteurs pour un 1 texte
    Je pense aussi qu'il peut y avoir plusieurs textes pour un locuteur non ?

    On a donc le schéma suivant :
    Locuteur -0,n----Dire----0,n- Texte

    Ce qui donne les tables :
    Locuteur (L_Id, L_Nom, ...)
    Texte (T_Id, T_Contenu, ...)
    Dire (D_IdTexte, D_IdLocuteur, ...)

    Comme tu le vois, si ma supposition est juste, il te faut une troisième table qui va contenir les dentifiants des textes et des locuteurs.

    Passons aux données...

    J'ajoute un Locuteur dans la table Locuteur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Locuteur(L_Nom)
    VALUES('Monsieur Jourdain')
    Remarque : l'identifiant étant auto-incrémenté, je ne lui donne pas de valeur.

    J'ajoute un texte dans la table Texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Texte (T_Contenu)
    VALUES ('Quelle belle chose que de savoir quelque chose !')
    Même remarque concernant l'identifiant.

    Maintenant j'enregistre le fait que Monsieur Jourdain est le locuteur du texte 'Quelle belle chose que de savoir quelque chose !'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    INSERT INTO Dire(D_IdTexte, D_IdLocuteur)
    VALUES (
      (SELECT T_Id
      FROM Texte
      WHERE T_Contenu = 'Quelle belle chose que de savoir quelque chose !'),
      (SELECT L_Id
      FROM Locuteur
      WHERE L_Nom = 'Monsieur Jourdain')
    )

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Revenons au modèle de données...



    Je pense aussi qu'il peut y avoir plusieurs textes pour un locuteur non ?


    )[/CODE]
    en fait non. chaque locuteur sera indépendant du texte.
    j'aurai bien un texte pour 1 ou plusieurs locuteurs et 1 locuteur ou plusieurs pour un texte.

    j'ai jeté un oeil du coté de la fonction php :
    qui retourne l'identifiant généré par la dernière requête INSERT MySQL.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut
    voilà ce que j'ai utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_fiche = mysql_insert_id();
    cela me permet de récupérer l'identifiant qui s'autoincrémente.

    pour le moment je suis en local je me demandai si cela allai poser des soucis lorsque j'aurai plusieurs utilisateurs...???
    a voir

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut
    j'ajoute un lien qui décrit un peu le probléme qui se pose a moi

    et un début de réponse y ai évoqué

    http://www.developpez.net/forums/d77...sql_insert_id/

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Oui et tu as lu la réponse que j'y ai postée, complétée par celle de "sabotage" ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2009
    Messages : 330
    Points : 93
    Points
    93
    Par défaut
    oui ce fut très clair comme tu disais dans ce post :

    A mysql_insert_id est associé en principe l'identifiant de la session MySQL.
    Si plusieurs utilisateurs travaillent en même temps avec le logiciel, chacun doit avoir sa session MySQL. Ainsi, mysql_insert_id retourne le dernier id inséré par la session.
    bonne journée

Discussions similaires

  1. [MySQL] Identifiants non présents dans une autre table
    Par brahim-brown dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/08/2012, 10h46
  2. [XL-2007] Auto incrementer dans une boucle
    Par nocontrol dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2011, 11h02
  3. [AC-2003] Auto Increment Dans une requete
    Par cifren dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 28/04/2009, 10h54
  4. [SQL Server] auto increment dans une vue
    Par pimousse_cerise dans le forum Langage SQL
    Réponses: 4
    Dernier message: 16/05/2006, 10h18
  5. 2 auto increment dans une meme table
    Par gesualda dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 12/10/2005, 09h31

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