Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/11/2010, 13h19   #1
Membre à l'essai
 
Benjamin
Inscription : novembre 2009
Messages : 122
Détails du profil
Informations personnelles :
Nom : Benjamin

Informations forums :
Inscription : novembre 2009
Messages : 122
Points : 23
Points : 23
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 :
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?
benjamin002 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 13h35   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

essaye d'utiliser mysql_insert_id()

Code :
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))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 13h35   #3
Membre habitué
 
Inscription : 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 : 120
Points : 120
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
romulus1206 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 14h21   #4
Membre à l'essai
 
Benjamin
Inscription : novembre 2009
Messages : 122
Détails du profil
Informations personnelles :
Nom : Benjamin

Informations forums :
Inscription : novembre 2009
Messages : 122
Points : 23
Points : 23
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 :
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);
benjamin002 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h59.


 
 
 
 
Partenaires

Hébergement Web