problèmes d'id automatique

HD
Mammouth du PHP | 1181 Messages

20 janv. 2007, 19:11

Bonjour
j ai une table "table1" où le 1er champs "id" est affecté automatiquement (1,2,3 etc.)
une table "table2" (id manuel) contient, pour les mêmes produits (id), des données différentes (et d'autres produits en plus de ceux de "table1").
Objectif : quand une requête crée un produit dans "table1", elle est suivie par une autre requête qui crée le meme produit dans la "table2" avec des données différentes
Problème : comme l'"id" est automatique dans "table1" comment faire pour récupérer et donc utiliser le même "id" dans "table2" :?:
merci pour votre aide !
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]

ViPHP
ViPHP | 1961 Messages

20 janv. 2007, 19:28

Bonjour,

Quand tu dis "un id automatique" tu veux dire que le id est généré par "AUTO_INCREMENT", non ?

Si c'est le cas tu as plusieurs possibilités pour le récupérer.

Avec la fonction PHP mysql_insert_id() à n'utiliser que si pas d'autres insertions (même sur une autre table) entre les deux requêtes.

Avec une requête SQL (indépendante du nombre d'inserts intermédiaires)
a) - Ça, ça fonctionnera pour toutes les versions de MySQL.

Code : Tout sélectionner

SHOW TABLE STATUS LIKE 'nom_table'
et tu récupères le champ 'Auto_increment' - 1

b) - Que pour MySQL 5.x .

Code : Tout sélectionner

SELECT (auto_increment-1) AS last_insert FROM information_schema.tables WHERE table_schema ='nom_base' AND table_name = 'nom_table';
Si tu as MySQL 5.x je te conseille la dernière méthode.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

HD
Mammouth du PHP | 1181 Messages

20 janv. 2007, 19:34

bonsoir et merci pour ta réponse
Quand tu dis "un id automatique" tu veux dire que le id est généré par "AUTO_INCREMENT", non ?

Si c'est le cas tu as plusieurs possibilités pour le récupérer.

Avec la fonction PHP mysql_insert_id() à n'utiliser que si pas d'autres insertions (même sur une autre table) entre les deux requêtes.
c'est bien auto increment et cette fonction semble répondre à ma question ! (pas d'insertions entre les 2 requetes)
merci beaucoup et bonne soirée !!
"Si Dieu descendait sur la Terre, tous les peuples se mettraient a genoux, excepte les Français qui diraient : " Ah ! Vous êtes la ! C'est pas trop tôt ! On va pouvoir discuter un peu !" [Michel Balfour]