Perrine Posté 4 Novembre 2004 Posté 4 Novembre 2004 (modifié) 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é 4 Novembre 2004 par Azon
Dan Posté 4 Novembre 2004 Posté 4 Novembre 2004 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
Vincent Posté 4 Novembre 2004 Posté 4 Novembre 2004 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.
Anonymus Posté 4 Novembre 2004 Posté 4 Novembre 2004 Enfin, tu peux également faire : select id from img order by id desc limit 0,1 Anonymus.
Perrine Posté 4 Novembre 2004 Auteur Posté 4 Novembre 2004 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 ?
Dan Posté 4 Novembre 2004 Posté 4 Novembre 2004 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
Perrine Posté 4 Novembre 2004 Auteur Posté 4 Novembre 2004 Héhé Je croyais que le résultat c'était le 5 du : Ressource id #5 Bon, ben super les potos, ça marche. Merci beaucoup
piwaille Posté 10 Novembre 2004 Posté 10 Novembre 2004 Bonjour sinon en plus simple, il y a crrément un mot clef en php : mysql_insert_id() qui retourne l'id du dernier insert sans avoir besoin de coder la requete sql et tout le tralala hop this helps
Sarc Posté 10 Novembre 2004 Posté 10 Novembre 2004 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...
martin© Posté 11 Novembre 2004 Posté 11 Novembre 2004 (modifié) 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é 11 Novembre 2004 par martin©
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant