Page 1 sur 1

problèmes d'id automatique

Posté : 20 janv. 2007, 19:11
par HD
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 !

Posté : 20 janv. 2007, 19:28
par Ajoloca
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.

Posté : 20 janv. 2007, 19:34
par HD
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 !!