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 :

Récupération de donnée après INSERT [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut Récupération de donnée après INSERT
    Bonjour,

    Je viens faire appel à vous (une fois de plus) car j'ai un problème de récupération de donnée après un INSERT. Je vous laisse mon code et je m'explique:

    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
    $sql2 = "INSERT INTO personnes (id_personne, Nom, Prenom, TGI, Ordinateur) VALUES ('', '".$nom."', '".$prenom."', '".$tgi."', '".$ordinateur."')";
    $result = mysql_query($sql2);
    if( !$result ) {
    	echo "Impossible d'exécuter la requête ($sql2) dans la base :" .mysql_error();
    	exit;
    }
    while( $row = mysql_fetch_assoc($result)) {
    	$sql = "INSERT INTO logins (id_login, login, pass, email, id_personne) VALUES ( 
    		'',
    		'".$user_name."', 
    		'".$password1."', 
    		'".$email."',
    		'".$row['id_personne']."')";
     
    	mysql_query($sql) or die(mysql_error());
    }
    mysql_free_result($result);
    Alors voilà, je souhaite contourner la jointure pour récupérer mon id_personne de la table personne dans ma table login afin que le login soit associé à une personne.
    Cependant il n'y a que la premiere requete qui s'execute, c'est à dire que je retrouve bien mes données dans ma table personnes, mais rien ne s'enregistre dans ma table login.

    Avez-vous une idée concernant mon problème?

  2. #2
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Points : 673
    Points
    673
    Par défaut
    Bonjour,

    essaye d'utiliser mysql_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
    $sql2 = "INSERT INTO personnes (id_personne, Nom, Prenom, TGI, Ordinateur) VALUES ('', '".$nom."', '".$prenom."', '".$tgi."', '".$ordinateur."')";
    $result = mysql_query($sql2);
    if( !$result ) {
    	echo "Impossible d'exécuter la requête ($sql2) dans la base :" .mysql_error();
    	exit;
    }
    $newIdPersonne = mysql_insert_id($result);
     
    $sql = "INSERT INTO logins (id_login, login, pass, email, id_personne) VALUES ( 
    		'',
    		'".$user_name."', 
    		'".$password1."', 
    		'".$email."',
    		'".$newIdPersonne ."')";
     
    	mysql_query($sql) or die(mysql_error());
    Le savoir est utile que s'il est partagé par tous.
    /(bb|[^b]{2})/
    !sleep() ? array((string))

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Août 2007
    Messages : 109
    Points : 129
    Points
    129
    Par défaut
    Bonjour,

    Je te conseille d'utiliser l'instruction "mysql_insert_id" juste après ton insertion

    Elle te retourne le dernier identifiant créer sur la connexion, jette un coup d'oeil à l'aide.

    Bon courage

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 123
    Points : 56
    Points
    56
    Par défaut
    Merci pour vos réponses!

    syl2095: je n'ai pas utiliser ta méthode mais tu m'as mis sur la voie

    romulus1206: merci j'ai été voir la doc et j'ai trouvé mon bonheur

    Je vous laisse la solution:

    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
    $sql2 = "INSERT INTO personnes (id_personne, Nom, Prenom, TGI, Ordinateur) VALUES ('', '".$nom."', '".$prenom."', '".$tgi."', '".$ordinateur."')";
    $result = mysql_query($sql2);
    if( !$result ) {
    	echo "Impossible d'exécuter la requête ($sql2) dans la base :" .mysql_error();
    	exit;
    }
    	$sql = "INSERT INTO logins (id_login, login, pass, email, id_personne) VALUES ( 
    		'',
    		'".$user_name."', 
    		'".$password1."', 
    		'".$email."',
    		LAST_INSERT_ID())";
     
    	mysql_query($sql) or die(mysql_error());
                 mysql_free_result($result);

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/05/2008, 09h53
  2. Réponses: 2
    Dernier message: 08/09/2007, 16h41
  3. Récupération des données après restauration du système avec Ghost
    Par digital prophecy dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/06/2007, 14h05
  4. Réponses: 3
    Dernier message: 19/04/2007, 21h55
  5. [SQL] Récupération de données et Insert dans une table
    Par heteroclite dans le forum PHP & Base de données
    Réponses: 32
    Dernier message: 12/07/2006, 16h17

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