IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupérer le dernier enregistrement? [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 97
    Par défaut Récupérer le dernier enregistrement?
    Salut,

    Comment puis-je récupérer le dernier enregistrement d'une table?

    Merci

  2. #2
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    regardes dans la doc php mysql_insert_id

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 97
    Par défaut
    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 97
    Par défaut
    Ca ne convient pas.... Je dois pas récupérer l'id juste après l'insertion mais à n'importe quel moment...

    Une autre idée??

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    C'est pas possible. Selon la norme SQL il n'y a pas de notion d'ordre. Tu dois voir ta table comme un sac de billes. Si tu pioche une bille dans ton sac, qu'est ce qui te dis que c'est la dernière insérée ??? Rien selon la norme. Il faut que tu aies un critère discriminatoire, qui te permette de comparer deux lignes et de dire si l'une est "avant" l'autre ou l'inverse.
    Après ta question est peu etre trop vague et que tu voulais simplement la dernière ligne que tu viens tout juste d'insérer => proposition de yiannis

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 97
    Par défaut
    Désolé, je me suis très mal exprimé..

    Je désires simplement récupérer l'id du dernier enregistrement.

    En fait, je désire renommer une image que j'upload à l'aide de l'id pour éviter les noms en double....

  7. #7
    Membre Expert
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Par défaut
    si tu veux faire cela, je ne vois qu'un solution.
    1 - tu inseres ton image dans ta BD
    2 - tu recuperes le dernier Id insere (mysql_insert_id)
    3 - tu fais un update du nom de ton image concatenee ave l'id

    peut etre quelqu'un aura-t-il une autre idee

  8. #8
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT id
    FROM ma_table
    ORDER BY id DESC
    LIMIT 1
    Ainsi tu as l'id de la dernière ligne, derniere dans le sens ou les lignes sont ordonnées par id.

    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id) FROM ma_table
    Ce qui selectionne le plus grand des id.

    Ensuite tu fais id+1 pour la nouvelle image. Attention à la concurrence !!!
    Si deux utilisateurs inserent deux images en meme temps, tu risque d'avoir un conflit. => utiliser LOCK/UNLOCK

    Sinon le plus simple pour moi est de passer la colonne id en auto_incrémant, comme ça tu n'as rien à faire, c'est mysql qui gère son truc 8)

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 97
    Par défaut
    Citation Envoyé par Mr N.
    Je te propose ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT id
    FROM ma_table
    ORDER BY id DESC
    LIMIT 1
    Ainsi tu as l'id de la dernière ligne, derniere dans le sens ou les lignes sont ordonnées par id.

    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id) FROM ma_table
    Ce qui selectionne le plus grand des id.

    Ensuite tu fais id+1 pour la nouvelle image. Attention à la concurrence !!!
    Si deux utilisateurs inserent deux images en meme temps, tu risque d'avoir un conflit. => utiliser LOCK/UNLOCK

    Sinon le plus simple pour moi est de passer la colonne id en auto_incrémant, comme ça tu n'as rien à faire, c'est mysql qui gère son truc 8)
    Merci!!

    En fait, la première solution me convient parfaitement!

    J'upload des images via un script et je voulais les renommer suivant l'id de la table pour éviter les double nom

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer le dernier enregistrement
    Par webfranc dans le forum SQL
    Réponses: 7
    Dernier message: 28/04/2008, 10h31
  2. [SQL2000] Récupérer le dernier enregistrement
    Par zooffy dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 16/11/2007, 14h24
  3. [MySQL] Récupérer le dernier enregistrement
    Par smarechal dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/04/2007, 20h04
  4. [MySQL] Récupérer le dernier enregistrement d'une table
    Par killuaster dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/03/2007, 11h55
  5. récupérer le dernier enregistrement d'une table
    Par kuhnden dans le forum Access
    Réponses: 4
    Dernier message: 21/02/2007, 21h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo