Bonsoir
J'ai un problème . J'ai une fonction php lié à un formulaire d'enregistrement dans 2 tables d'une base mysql. Normalement j'utilise le LAST_INSERT_ID() pour récupérer le numèro autoincrement creer dans la première table, et ainsi l'insérer dans la seconde table. Cette astuce a bien fonctionné. Mais je me suis aperçu que si j 'ai un grand nombre de personnes qui s'enregistrent en même temps, il y a un gros problème. En effet le num attribué à la personne crée à ce moment la ne va pas à la bonne personne. Il recoit un autre num d'une personne qui s'est enregistrée en meme temps.
fonction.php
avec cela si les personnes n'enregistrent pas au même moment, cela fonctionne. Mais si il y a plusieurs personnes qui s'enregistrent en même temps, la c'est c'est gros problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php require('connexion.php'); //----------------------------------- $a=$_POST['nom']; $b=$_POST['prenom']; $c=$_POST['login']; $d=$_POST['pass']; //----------------------------------- $sql = "INSERT INTO inscrit(nom,prenom)VALUES('".$a."','".$b."')"; $exec = mysql_query($sql); $sql _a= "INSERT INTO ident(login,mdp)VALUES(LAST_INSERT_ID(),'".$c."','".$d."')"; $exec_a = mysql_query($sql_a); ?>
J'avais pensé à une solution celle la mais elle ne fonctionne pas non plus.
fonction.php
mais la non plus cela en fonctionne pas.
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 <?php require('connexion.php'); //--------------------------------------------------- $a=$_POST['nom']; $b=$_POST['prenom']; $c=$_POST['login']; $d=$_POST['pass']; $e=md5($d); //--------------------------------------------------- $sql = "INSERT INTO inscrit(pass,nom,prenom)VALUES('"$e"','".$a."','".$b."')"; $exec = mysql_query($sql); //-----Selection du num auto en fonction du pass----- $sql_a = "SELECT num_inscr FROM inscrit WHERE pass=".$e; $exec_a = mysql_query($sql_a); $res=mysql_fetch_object($exec_a); //--------------------------------------------------- $sql _b= "INSERT INTO ident(num_inscr,login,mdp)VALUES('".$res->num_inscr."','".$c."','".$d."')"; $exec_b = mysql_query($sql_b); ?>
Quelqu'un à une solution ?
Partager