Bonjour,
j'avais une question par rapport à une fonction PHP,
Je connais cette fonction là :

    $lastID = $pdo->lastInsertId();

Mais je voulais savoir de cette même façon s'il existait une fonction permettant de récupérer l'ID, après un SELECT.
Sans pour autant passer par un fetch ou quelque chose comme cela.
Merci ;)

5 réponses


Il y a plusieurs manières de faire cela. Ça dépend surtout du SGBD utilisé. Cela dit, il y a une fonction permettant de faire cela, cette documentation montre les différents cas (dans le cas où on voudrait pas utiliser directement la fonction LAST()). C'est intéressent, car ça offre une façon standard de faire du SQL, sans que ce code soit totalement brisé en changeant l'engin de base de données.

http://www.w3schools.com/sql/sql_func_last.asp

Grope
Auteur

Nan j'ai dû mal m'exprimer.

    $insert = $pdo->query("INSERT INTO `TABLE_NAME`(`Nom`, `Prenom`) VALUES ("$nom, $prenom");
    $lastID = $pdo->lastInsertId();

Ecrit rapidement c'est pour la forme :p

    $insert = $pdo->query("SELECT * FROM `TABLE_NAME`");
    $selectID = $pdo->lastSelectId();

Bon je viens d'inventer une fonction la je crois x)
Mais en gros ce que j'aimerais.
Je sais pas si tu comprends mieux ce que je recherchais ou alors j'ai mal compris ta réponse.
Merci pour ta réponse ^^

Si j'ai bien compris, tu veux récuperer le dernier id d'un select ?

Je n'arrive pas à voir dans quel cas ça pourrais être utile, car au pire, suffit de récuperer l'id dans ta requête, des les triers par ordre décroissant et de prendre le premier résultat.

Problème réglé ;)

Grope
Auteur

Merci pour ta réponse ! :)
Bon alors je vais expliquer pour mon cas ^^

    <?php 
        $req = $pdo->query("SELECT * FROM `TABLE_NAME`");   
        $data = $req->fetchAll();

        foreach($data as $key => $donnee) { 

        }

        ?>

Après cette boucle je dois faire une seconde requête, un SELECT, dedans j'ai un WHERE qui doit récupérer l'id de la première requête comment puis-je faire ?
Merci

Tu as déjà l'id. puisque tu fais un SELECT * il te suffit simplement de récupere l'id des résultats de ta requête