par
manfried » 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:
Code : Tout sélectionner
sql$ = "SELECT LAST_INSERT_ID(ID) FROM users";
$last_id = mysql_query($sql);
afin de pouvoir faire ensuite:
Code : Tout sélectionner
sql$ = "INSERT INTO cities(id, owner_id, name) VALUES ("$id","$last_id$",'"$nom$"')";
$res = mysql_query($sql);
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
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:
[code]sql$ = "SELECT LAST_INSERT_ID(ID) FROM users";
$last_id = mysql_query($sql);[/code]
afin de pouvoir faire ensuite:
[code]sql$ = "INSERT INTO cities(id, owner_id, name) VALUES ("$id","$last_id$",'"$nom$"')";
$res = mysql_query($sql);[/code]
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