Récupérer la dernière id d'une base mysql

Résolu/Fermé
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 - 10 nov. 2013 à 19:42
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 - 11 nov. 2013 à 00:14
Bonjour,

J'ai ma base de donnée mysql en local comme ceci :

connexion: 'localhost','root',null
base de donnée: support

table: ticket
id - pseudo - email
1 ............ - ........
2 ............ - ........
3 ............ - ........
4 ............ - ........
...

Je souhaite récupérer sous forme de variable php le champ "pseudo" et "email" de la dernière id.

Je pense qu'il y a moyen avec

"SELECT MAX(id) FROM ticket"

J'ai fait des recherches mais je ne trouve rien qui fonctionne.
Merci d'avance
A voir également:

3 réponses

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
Modifié par gravgun le 10/11/2013 à 19:46
Salut, utilise des sous-requêtes:
SELECT * FROM ticket WHERE id=(SELECT max(id) FROM ticket)
1
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 17
10 nov. 2013 à 19:52
Mais je ne sais pas comment faire, avant j'utilisait :

try {

$ms_connexion = new PDO('mysql:host='.$ms_host.';dbname='.$ms_name.'; charset=utf8', $ms_user, $ms_pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$ms_fonctional = 'on';

if(!empty($_SESSION['session'])) {
$req_selectMembre = $ms_connexion->prepare('SELECT * FROM membres WHERE session=:session');
$req_selectMembre->execute(array(
'session' => $_SESSION['session']
));

$selectMembre = $req_selectMembre->fetch();
$pseudo = $selectMembre['pseudo'];
$mail = $selectMembre['mail'];
} else {
return false;
}
} catch (PDOException $e) {
$ms_fonctional = 'off';
}

J'ai vu ça dans un tuto et la je suis vraiment pommé 0.0
1
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
10 nov. 2013 à 20:26
Je vois pas vraiment où tu veux caser cette séléction de dernier ID: le code que tu as donné est un code typique d'un système de membres...
0
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 17
10 nov. 2013 à 23:20
oui est c'est la première partie qui consiste à envoyer les données et je cherche le moyen d'avoir la dernière ID pour la seconde partie.
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
10 nov. 2013 à 23:27
OK, bah dans le même try/catch, ajoute:
$req_selectDernier = $ms_connexion->query('SELECT * FROM ticket WHERE id=(SELECT max(id) FROM ticket)');

$dernier = $req_selectDernier->fetch(PDO::FETCH_ASSOC);
$dernier
sera un tableau associatif des colonnes de la ligne avec l'ID max:
$dernierPseudo = $dernier['pseudo'];

$dernierEmail = $dernier['email'];
0
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 17
10 nov. 2013 à 23:42
Merci !

Sait tu comment faire pour ensuite supprimer cette ligne en php ?
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
11 nov. 2013 à 00:07
$ms_connexion->query('DELETE FROM ticket WHERE id='.$dernier['id']);
Pas besoin d'une requête 2 temps pour éviter les injections: il ne peut pas y en avoir vu que l'utilisateur ne touche pas au champ
id
, qui est un int en auto-increment géré par la BDD.
0
gautier019 Messages postés 140 Date d'inscription samedi 19 mai 2012 Statut Membre Dernière intervention 12 juin 2017 17
11 nov. 2013 à 00:14
Ok merci !!
0