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

  1. #1
    Inactif
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 11
    Points
    11
    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 à l'essai
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 26
    Points : 23
    Points
    23
    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
    Points : 11
    Points
    11
    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
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    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

  5. #5
    Expert éminent 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
    Points : 6 449
    Points
    6 449
    Par défaut
    Tu auras toutes les infos que tu cherches ici :
    http://php.net/mysql_insert_id

  6. #6
    Expert éminent 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
    Points : 6 449
    Points
    6 449
    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 averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    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
    Points : 3 377
    Points
    3 377
    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
    Membre expérimenté
    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
    Points : 1 500
    Points
    1 500
    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

  10. #10
    Expert éminent 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
    Points : 6 449
    Points
    6 449
    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.

  11. #11
    Inactif
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 11
    Points
    11
    Par défaut reponce
    est ce que je peux écrire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	$sql = "INSERT INTO parle(ID_LANGUE,ID_CANDID)
    		VALUES('$select3','$ID_CANDID')  WHERE ID_CANDID = ( SELECT LAST id from candidats)" ; 
    	    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

  12. #12
    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
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par belakhdarbts
    est ce que je peux écrire comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	$sql = "INSERT INTO parle(ID_LANGUE,ID_CANDID)
    		VALUES('$select3','$ID_CANDID')  WHERE ID_CANDID = ( SELECT LAST id from candidats)" ; 
    	    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    Si tu ne lis pas les réponses à tes questions, tu peux tout aussi bien arrêter d'en poser.

  13. #13
    Inactif
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 11
    Points
    11
    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

  14. #14
    Membre expérimenté

    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
    Points : 1 565
    Points
    1 565
    Par défaut
    SELECT SELECT ? mmmhhh

  15. #15
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    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

  16. #16
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Points : 936
    Points
    936
    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)
    Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789

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