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
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
$con->getLastID();
ma requete d'isertion est la suivante ou je vais mettre $con->getLastID();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Envoyé par zulot
Non pas du tout !
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.
Envoyé par Mr N.
Dans la methode cité au dessus aussi.
Non parce que mysql_insert_id ne travaille que sur la connexion courante.Envoyé par zulot
Bonjour de rien merci avec plaisir salutEnvoyé par belakhdarbts
Non.Envoyé par zulot
Une table dont la "dernière" ligne est :
Deux utilisateurs A et B arrivent en même temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.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'affiche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
y'a ça qui traine dans la:
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)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager