last insert id

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : last insert id

par ouckileou » 13 oct. 2008, 14:01

Attention quand même :
Note that in this case (when the AUTO_INCREMENT column is part of a multiple-column index), AUTO_INCREMENT values are reused if you delete the row with the biggest AUTO_INCREMENT value in any group. This happens even for MyISAM tables, for which AUTO_INCREMENT values normally are not reused.
Se baser sur la clé primaire pour faire des tris, récupérer le dernier, bref ce genre d'opération, c'est un peu risqué.

Si vraiment tu souhaites connaître le dernier enregistrement ajouté par un utilisateur précis, pourquoi ne pas rajouter une date/heure ? Là au moins, pas de problème, et c'est beaucoup plus logique.

par jojolapine » 13 oct. 2008, 13:11

Pour contourner le problème, tu peux faire une requête du genre:

Code : Tout sélectionner

SELECT id FROM tatable WHERE user_id=73 ORDER BY id DESC LIMIT 0,1
(fait un test, je sais plus si c'est DESC ou ASC pour l'ordre...)
ça devrait marcher non?

par ouckileou » 13 oct. 2008, 12:06

Je crois que les réponses à tes questions sont dans la doc :
http://dev.mysql.com/doc/refman/5.0/fr/ ... rt-id.html

par Invité » 13 oct. 2008, 12:02

dans phpmyadmin, la requete me renvoie 0 résultats alors que je viens d'ajouter un enregistrement pour l'utilisateur concerné.

last insert id

par Invité » 13 oct. 2008, 11:36

Bonjour,

ceci n'est pas un pb mais une demande de précision.
J'aimerais savoir si utiliser last insert id avec un critère peut poser un problème.
Par exemple, pour récupérer le dernier enegistrement créé par un utilisateur:

Code : Tout sélectionner

SELECT LAST_INSERT_ID() FROM ma_table WHERE user_id = 73
La structure de la table:

Code : Tout sélectionner

CREATE TABLE `jos_mt_links` ( `id` int(11) NOT NULL auto_increment, `user_id` int(11) NOT NULL default '0', `link_hits` int(11) NOT NULL default '0', `link_votes` int(11) NOT NULL default '0', `link_rating` decimal(7,6) unsigned NOT NULL default '0.000000', PRIMARY KEY (`link_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=61 ;