récupérer la valeur d'un auto-incrément dans une variable
Posté : 16 nov. 2005, 15:13
Bonjour,
je débute en php et en mysql et je retrouve confronté à un problème.
idéalement, il faudrait que je puisse envoyer la requête suivante:
INSERT INTO cities (id, owner_id, name) VALUES ('null', SELECT LAST_INSERT_ID(ID) FROM users, 'nom')
seulement, j'ai une version mysql < 4.1 et donc les requêtes imbriquées ne fonctionnent pas.
J'ai alors essayé comme ceci:
INSERT INTO cities (id, owner_id, name) SELECT 'null', LAST_INSERT_ID(ID), 'nom' FROM users
mais cette requête me crée deux tuples au lieu d'un seul, je suppose que c'est lié au fait que les champs id de cities et users sont tout deux auto-incrementés.
J'ai donc pensé faire ceci:
afin de pouvoir faire ensuite:
Seulement en fait si j'affiche $last_id j'obtiens Resource id #3
Ma question est donc: comment pourrais-je faire pour récuperer la dernière valeur de cet incrément ?
Merci d'avance
je débute en php et en mysql et je retrouve confronté à un problème.
idéalement, il faudrait que je puisse envoyer la requête suivante:
INSERT INTO cities (id, owner_id, name) VALUES ('null', SELECT LAST_INSERT_ID(ID) FROM users, 'nom')
seulement, j'ai une version mysql < 4.1 et donc les requêtes imbriquées ne fonctionnent pas.
J'ai alors essayé comme ceci:
INSERT INTO cities (id, owner_id, name) SELECT 'null', LAST_INSERT_ID(ID), 'nom' FROM users
mais cette requête me crée deux tuples au lieu d'un seul, je suppose que c'est lié au fait que les champs id de cities et users sont tout deux auto-incrementés.
J'ai donc pensé faire ceci:
Code : Tout sélectionner
sql$ = "SELECT LAST_INSERT_ID(ID) FROM users";
$last_id = mysql_query($sql);Code : Tout sélectionner
sql$ = "INSERT INTO cities(id, owner_id, name) VALUES ("$id","$last_id$",'"$nom$"')";
$res = mysql_query($sql);Ma question est donc: comment pourrais-je faire pour récuperer la dernière valeur de cet incrément ?
Merci d'avance