Récupération de la dernière ligne insérée

Eléphanteau du PHP | 40 Messages

14 mars 2005, 11:31

Salut à tous, j'ai une table, ou je dois récupérer la dernière ligne que j'ai insérée.

J'essaie comme ceci:

Select min(id), champs1, champs2 from ma_table where champs2 = 'abc' group by id

cela ne marche pas,

ensuite j'essaie ceci:

select id, champs1, champs2 from ma_table where champs2='abc' and id = (select min(id) from ma_table having min(id) > 1

cela ne marche pas non plus.

J'utilise la version 4.0.15 de mysql.

Qqn aurait une idée comment me débrouiller ?

A+ et Merci

Casalboss01

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

14 mars 2005, 11:36

Si id est une clé primaire AUTOINCREMENT, cette requête retourne le dernier enregistrement saisi dans la table:

SELECT id, champs1, champs2
FROM ma_table
ORDER BY id DESC
LIMIT 1

ORDER BY Permet de classer les enregistrements par id décroissant et LIMIT 1 retourne le premier du classement.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 40 Messages

14 mars 2005, 11:44

Salut,

merci pour le tuyau, c'était tellement évident, que je ne le voyais pas !

Bonne continuation

Casalboss01

Mammouth du PHP | 1885 Messages

14 mars 2005, 19:58

Encore mieux:
$id = mysql_insert_id();
Ceci retourne le dernier ID inséré.
Utilise cette fonction immédiatement après l'insertion.

;)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP