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

Langage PHP Discussion :

Dernier Id généré du table [PHP 5.3]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 131
    Par défaut Dernier Id généré du table
    Re bonjour

    J'ai vu qu'il existait une fonction mysql_insert_id qui permettait de savoir quel était le dernier id d'une base en cours à avoir été généré.

    N'existe t-il pas la même chose mais sur une table en particulier ?
    Car à part faire un select max(id) from table je ne trouve rien d'autre.

    Vous confirmez ?

    Merci à vous et bonnes fêtes.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    mysql_insert_id ne retourne pas le dernier id d'une base mais le dernier id generé dans la connexion en cours.

    Sinon pour avoir le dernier enregistrement d'une table tu peux faire max(id) ou ORDER DESC LIMIT 1
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 131
    Par défaut
    Citation Envoyé par sabotage Voir le message
    mysql_insert_id ne retourne pas le dernier id d'une base mais le dernier id generé dans la connexion en cours.

    Sinon pour avoir le dernier enregistrement d'une table tu peux faire max(id) ou ORDER DESC LIMIT 1
    Merci pour la précision
    Donc si je suis dans une connexion sur une table X alors cela me renvoie le dernier id de cette table X ?

    Merci

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Non, cela ne renvoit qu'un id generé pendant la connexion.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Par défaut ORDER
    La solution c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY id DESC LIMIT 1
    Si tu n'es pas en train de faire des requêtes INSERT.
    Car si c'est le cas, mysql_insert_id() reste encore le moyen le plus simple. En effet tu es sur la table dans laquelle tu viens de faire ton insert et tu récupères dans la foulée l'id généré (donc le dernier de la table en question.

    Dans les autres cas, en ordonnant par id DESC et en ne récupérant que le premier enregistrement de cet ordre tu auras automatiquement le dernier (si tant est que tes id sont générés en auto_increment...)

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    bonjour,

    si le but est de récupérer le dernier id immédiatement crée après une insertion, tu peux mais surtout tu dois le faire via une procédure stockée afin d'éviter tout problème de création intermédiaire entre la création et la récupération de l'id

  7. #7
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 131
    Par défaut
    Citation Envoyé par elvan49 Voir le message
    La solution c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY id DESC LIMIT 1
    Si tu n'es pas en train de faire des requêtes INSERT.
    Car si c'est le cas, mysql_insert_id() reste encore le moyen le plus simple. En effet tu es sur la table dans laquelle tu viens de faire ton insert et tu récupères dans la foulée l'id généré (donc le dernier de la table en question.

    Dans les autres cas, en ordonnant par id DESC et en ne récupérant que le premier enregistrement de cet ordre tu auras automatiquement le dernier (si tant est que tes id sont générés en auto_increment...)
    Salut Elvan
    Je n'ai pas bien saisi le début de ton message
    Qu'entends tu par je cite
    "La solution c'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY id DESC LIMIT 1
    "

    Merci à toi

  8. #8
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2009
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2009
    Messages : 131
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Non, cela ne renvoit qu'un id generé pendant la connexion.
    Merci encore
    Mais on peut penser alors, qu'étant en local sur ma machine, et le seul utilisateur du programme que j'écris, et que ma requête INSERT vient de travailler sur une table particulière, que je récupère obligatoirement l'id voulu ?
    J'espère avoir été clair.

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

Discussions similaires

  1. comment rechercher les derniers enregistrement d'une table ?
    Par hornetboy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/09/2005, 09h13
  2. Récupérer dernier enregistrement d'une table?
    Par Invité dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 19/01/2004, 11h38
  3. Derniere clé d'une table
    Par carnageco dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/09/2003, 14h07
  4. Réponses: 10
    Dernier message: 01/08/2003, 13h45
  5. Trouver le dernier enregistrement d'une table
    Par remi59 dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/03/2003, 14h54

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