Aller au contenu

Sélection du dernier id d'une table


Perrine

Sujets conseillés

Bonjour à tous :)

Je cherche à récupérer le dernier id (c'est à dire le id le plus élevé) dans une table "img"

Je ne connais pas du tout mysql, sauf les quelques SELECT et INSERT que je vois dans les scripts que j'installe.

Est ce que cette requête existe ?

Modifié par Azon
Lien vers le commentaire
Partager sur d’autres sites

Salut Azon,

Cela dépend s'il s'agit d'une table avec auto incrémentation.

Dans l'affirmative, tu as le "select last_insert_id()" , ou plus simple avec php: int mysql_insert_id ( [resource link_identifier ] )

Dans la négative, le "select max(id)" devrait aussi te donner le maximum de la colonne id

Dan

Lien vers le commentaire
Partager sur d’autres sites

oui, pareil que Dan, si tu as une table avec auto-incrémentation, tu peux meme quand tu fais un INSERT laisser le champs ID vide... SQL va se charger de mettre le bon ID lui même.

Lien vers le commentaire
Partager sur d’autres sites

J'ai essayé les 3 requêtes suivantes, l'une après l'autre :

$req2 = MYSQL_QUERY("SELECT id FROM img_grognards order by id desc limit 0,1");
$req2 = MYSQL_QUERY("SELECT last_insert_id() FROM img_grognards");
$req2 = MYSQL_QUERY("SELECT MAX(id) FROM img_grognards ");

et quand je fais un echo de $req2, ça me donne : Resource id #5. Or je n'ai que 4 enregistrements et l'id le plus élevé est 4.

Dans un excès de folie, j'ai tenté un $dernier = $req2-1; ... ça me donne 4 !

Mais bon, c'est pas très catholique tout ça ... pourquoi il me sort 5 alors que le id le plus haut est 4 ?

Lien vers le commentaire
Partager sur d’autres sites

Salut Azon,

Il ne suffit pas de faire la requête, il faut encore récupérer les résultats ...

Ajoutes la ligne suivante:

$result=mysql_fetch_row($req2);

Ensuite, imprimes $result[0] ;)

Dan

Lien vers le commentaire
Partager sur d’autres sites

Oui mais s'il n'a rien inséré dans ce programme, ca ne renverra rien !

Je pense qu'il veut savoir le dernier ID de sa table, et non l'ID qu'il vient d'insérer... ;)

Lien vers le commentaire
Partager sur d’autres sites

Ne pas oublier que si il y a eu des suppressions de lignes, le dernier id qui a été enregistré n'est pas forcement le plus grand ! Mysql comble les "trous" ...

EDIT: oubliez ce que j'ai dis, c'est n'importe quoi ! mysql comble les "trous" du fichier, mais un auto_increment continue à s'incrémenter heureusement, je vous dis pas le souk sinon...

Modifié par martin©
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...