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 :

[SQL] récuperer la derniére valeur d'un champ autoincrément


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut [SQL] récuperer la derniére valeur d'un champ autoincrément
    je veux savoir comment je peux récuperer la derniére valeur d'un champs auto incrément pour l'utiliser dans une requéte d'insertion

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 26
    Par défaut
    Bonjour,

    regarde autour de getLastId
    $con->getLastID();

  3. #3
    Inactif
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut belakhdarbts
    ma requete d'isertion est la suivante ou je vais mettre $con->getLastID();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $sql = "INSERT INTO parle(ID_LANGUE)
    		VALUES('$select3')"; 
    	    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

  4. #4
    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
    Tu auras toutes les infos que tu cherches ici :
    http://php.net/mysql_insert_id

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    oula moi j'opterais pour une simple requete msql qui retourne la plus grande valeure du champs auto_increment

    Vas plutot voir du coté SQL plutot que php

  6. #6
    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
    Citation Envoyé par zulot
    oula moi j'opterais pour une simple requete msql qui retourne la plus grande valeure du champs auto_increment
    Non pas du tout !
    Il y a un gros risque de concurrence dans cette solution => deux utilisateurs risquent d'avoir le meme id si ils demandent en même temps.

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Par défaut
    Citation Envoyé par Mr N.
    Non pas du tout !
    Il y a un gros risque de concurrence dans cette solution => deux utilisateurs risquent d'avoir le meme id si ils demandent en même temps.

    Dans la methode cité au dessus aussi.

  8. #8
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par zulot
    Dans la methode cité au dessus aussi.
    Non parce que mysql_insert_id ne travaille que sur la connexion courante.

  9. #9
    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
    Citation Envoyé par zulot
    Dans la methode cité au dessus aussi.
    Non.

    Une table dont la "dernière" ligne est :
    Deux utilisateurs A et B arrivent en même temps.
    A fais un insert du "Tutu" et B fais un insert de "Titi"

    La méthode bourrine qui consiste à faire en gros un select max(id) :
    A => INSERT "Tutu" => 1235
    B => INSERT "Titi" => 1236
    B => SELECT MAX(id) => 1236
    A => SELECT MAX(id) => 1236
    /!\ Problème, A obtiens un id qui ne correspond pas à son insertion /!\

    La méthode last insert id :
    A => INSERT "Tutu" => 1235
    B => INSERT "Titi" => 1236
    B => last insert id => 1236
    A => last insert id => 1235
    Tout est bon, A a bien récupérer l'id correspondant à son insertion.
    Tout ceci car last insert id est propre à la connexion.

  10. #10
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Citation Envoyé par belakhdarbts
    je veux savoir comment je peux récuperer la derniére valeur d'un champs auto incrément pour l'utiliser dans une requéte d'insertion
    Bonjour de rien merci avec plaisir salut

  11. #11
    Inactif
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Par défaut recuperer le derniere id
    bonjour tous le monde voila mon code d'insertion
    je veux inserer le derniere id candid de la table candidats dans la table parle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $sql = "INSERT INTO parle(ID_LANGUE,ID_CANDID)
    		VALUES('$select3','$ID_CANDID') SELECT  SELECT LAST_INSERT_ID()   " ; 
    	    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    mais ça ne marche pas il m'affiche
    Notice: Undefined variable: ID_CANDID in c:\program files\easyphp1-8\www\call services site web\insertioncandidats.php on line 56
    Erreur SQL !INSERT INTO parle(ID_LANGUE,ID_CANDID) VALUES('1','') SELECT SELECT LAST_INSERT_ID()
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT SELECT LAST_INSERT_ID()' at line 2
    merci pour vos réponces

  12. #12
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    SELECT SELECT ? mmmhhh

  13. #13
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  14. #14
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    si t veux recupérer et inserer le dernier id de l'autre table, utilise la fonction mysql_insert_id()(sais plus si l'orthographe est correcte)

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2014, 16h20
  2. requete sql pour changer la valeur d'un champs
    Par NANOUSUN dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/02/2011, 12h06
  3. Réponses: 0
    Dernier message: 09/02/2009, 17h20
  4. [Spring MVC] récuperation de la valeur d un champ texte
    Par iftolotfi dans le forum Spring Web
    Réponses: 2
    Dernier message: 26/05/2006, 16h44
  5. [SQL] ligne dont la valeur d'un champ est unique
    Par kopofb dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/11/2005, 20h53

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