{MySQL} Max ID dans une base

Résolu/Fermé
JJBlow Messages postés 44 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 novembre 2010 - 4 août 2009 à 11:48
JJBlow Messages postés 44 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 novembre 2010 - 4 août 2009 à 15:17
Bonjour, voilà, j'ai créé un petit script qui me permet d'afficher le numéro max de mes ID dans ma base.

Je m'explique, j'ai un espace membre, pour afficher l'ID du dernier membre inscrit, ce qui est aussi le nombre de membres inscrit au total, j'ai fait ce petit script. Cependant, il m'affiche un faux résultat.

Voici le principal du script:
<?php
     mysql_connect('localhost', 'root', '') OR die('Erreur de connexion à la base');
     mysql_select_db('DB') OR die('Erreur de sélection de la base');
	 
$req1=mysql_query("SELECT id FROM membres_tbl WHERE id =(select MAX(id) from membres_tbl)"); 
echo $req1;
?>


Donc le problème que j'ai c'est que, lorsque j'ai fait mon script espace membre, j'ai du tester quelque fois et faire de faux comptes, maintenant, mon compte est en ID numéro 6 (je suis donc le premier membre) car j'ai fait 5 compte test que j'ai ensuite supprimé.
Voici à quoi ressemble un peu l'organisaton des ID maintenant:
http://img10.imageshack.us/img10/5316/screenshotmil.jpg
Donc quand je test ce script pour afficher l'ID Max il m'affiche 6, il y a donc un bug, sans doute parce qu'il n'y a pas les autres chiffres d'avant (qui correspondaient aux test).
Je voudrais donc savoir comment régler ce problème (sachant que je ne peut pas renommer tous les ID des membres, ils sont bien trop nombreux).

J'ajoute pour finir, si sa peut être utile que le champ ID est en Auto-increment.

Voilà, merci de votre aide et bonne journée.
A voir également:

5 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
4 août 2009 à 14:37
bonjour,


$query =" select max(id) from table ";
$result=mysql_query($query);
$row = mysql_fetch_assoc($result);
echo $row['max(id)'] ;
1
Bonjour

Le script que tu montres n'affiche certainement pas 6, car il affiche le résultat du mysql_query, qui est une resource et non pas un nombre !

D'ailleurs, ta requête est extrêmement bizarre : pourquoi
SELECT id FROM membres_tbl WHERE id =(select MAX(id) from membres_tbl)

au lieu de faire simplement :
SELECT MAX(id) from membres_tbl

? C'est franchement tordu
Et de plus, si ton champ est en auto-incrément, tu as une fonction toute faite en PHP, tu n'as même pas de mysql_query à faire. Il suffit d'utiliser mysql_insert_id()
0
Je me corrige moi-même. mysql_insert_id ne fait pas exactement la même chose, car le dernier inscrit a pu être effacé entre temps...
0
JJBlow Messages postés 44 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 novembre 2010 2
4 août 2009 à 12:35
Bonjour, tout d'abord merci de ta réponse.
Je tient à préciser que je suis encore novice en PHP et donc ne métrise pas complètement, voilà sans doute pourquoi j'ai fait des erreurs.

J'ai mis SELECT id FROM membres_tbl WHERE id =(select MAX(id) from membres_tbl) car ce code me semblait correct.

Enfin, j'ai donc corrigé et modifié selon vos indications, seulement cela retourne la même chose:
Resource id #6


Le script que tu montres n'affiche certainement pas 6, car il affiche le résultat du mysql_query, qui est une resource et non pas un nombre !
Alors s'il te plait, comment faire pour afficher le nombre du dernier ID ?

Merci encore de ton aide et bonne journée.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JJBlow Messages postés 44 Date d'inscription jeudi 30 juillet 2009 Statut Membre Dernière intervention 6 novembre 2010 2
4 août 2009 à 15:17
WOA, fantastique, sa fonctionne à merveille.

Mille merci giheller, une aide très appréciable surtout que je cherchais à résoudre ce problème depuis hier sans trouver.

Merci encore et excellente journée à toi.
0