je veux savoir comment je peux récuperer la derniére valeur d'un champs auto incrément pour l'utiliser dans une requéte d'insertion
Version imprimable
je veux savoir comment je peux récuperer la derniére valeur d'un champs auto incrément pour l'utiliser dans une requéte d'insertion
Bonjour,
regarde autour de getLastId
Citation:
$con->getLastID();
ma requete d'isertion est la suivante ou je vais mettre $con->getLastID();
Code:
1
2
3
4 $sql = "INSERT INTO parle(ID_LANGUE) VALUES('$select3')"; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
oula moi j'opterais pour une simple requete msql qui retourne la plus grande valeure du champs auto_increment
Vas plutot voir du coté SQL plutot que php
Tu auras toutes les infos que tu cherches ici :
http://php.net/mysql_insert_id
8O Non pas du tout !Citation:
Envoyé par zulot
Il y a un gros risque de concurrence dans cette solution => deux utilisateurs risquent d'avoir le meme id si ils demandent en même temps.
Citation:
Envoyé par Mr N.
Dans la methode cité au dessus aussi.
Non parce que mysql_insert_id ne travaille que sur la connexion courante.Citation:
Envoyé par zulot
Bonjour de rien merci avec plaisir salutCitation:
Envoyé par belakhdarbts
Non.Citation:
Envoyé par zulot
Une table dont la "dernière" ligne est :
Deux utilisateurs A et B arrivent en même temps.Code:
1
2
3 ... 1234 "Toto"
A fais un insert du "Tutu" et B fais un insert de "Titi"
La méthode bourrine qui consiste à faire en gros un select max(id) :
A => INSERT "Tutu" => 1235
B => INSERT "Titi" => 1236
B => SELECT MAX(id) => 1236
A => SELECT MAX(id) => 1236
/!\ Problème, A obtiens un id qui ne correspond pas à son insertion /!\
La méthode last insert id :
A => INSERT "Tutu" => 1235
B => INSERT "Titi" => 1236
B => last insert id => 1236
A => last insert id => 1235
Tout est bon, A a bien récupérer l'id correspondant à son insertion.
Tout ceci car last insert id est propre à la connexion.
est ce que je peux écrire comme ça
Code:
1
2
3
4 $sql = "INSERT INTO parle(ID_LANGUE,ID_CANDID) VALUES('$select3','$ID_CANDID') WHERE ID_CANDID = ( SELECT LAST id from candidats)" ; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Si tu ne lis pas les réponses à tes questions, tu peux tout aussi bien arrêter d'en poser.Citation:
Envoyé par belakhdarbts
bonjour tous le monde voila mon code d'insertion
je veux inserer le derniere id candid de la table candidats dans la table parle
mais ça ne marche pas il m'afficheCode:
1
2
3
4
5 $sql = "INSERT INTO parle(ID_LANGUE,ID_CANDID) VALUES('$select3','$ID_CANDID') SELECT SELECT LAST_INSERT_ID() " ; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
Notice: Undefined variable: ID_CANDID in c:\program files\easyphp1-8\www\call services site web\insertioncandidats.php on line 56
Erreur SQL !INSERT INTO parle(ID_LANGUE,ID_CANDID) VALUES('1','') SELECT SELECT LAST_INSERT_ID()
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT SELECT LAST_INSERT_ID()' at line 2
merci pour vos réponces
SELECT SELECT ? mmmhhh
y'a ça qui traine dans la :faq: :
http://php.developpez.com/faq/?page=..._mysqlinsertid ;)
si t veux recupérer et inserer le dernier id de l'autre table, utilise la fonction mysql_insert_id()(sais plus si l'orthographe est correcte)