Organiser par id (MySQL)
Splicee
-
Vigli Messages postés 193 Statut Membre -
Vigli Messages postés 193 Statut Membre -
Bonjour à tous, voilà, j'ai un petit problème avec ma requête SQL pour mon site;
j'ai dans ma table "membres" par exemple, les membres qui sont identifiés par un id unique, commençant par 1 et qui est auto incrémenté.
Le problème c'est lorsque je veut afficher les liste des id, si je fais:
Alors je met * car je ne veut pas appeler que les id mais aussi les pseudos, enfin, le problème c'est que à l'affichage, jusque 99 sa va, mais à partir de 100 rien ne va plus.
Voici un exemple de ce que j'ai:
1
2
3
4
5
6
7
8
9
10
101
102
103
...
11
12
13
14
15
Les centaines sont affichés après 10.
En fait MySQL classe mal, il regarde le premier et le deuxième.
Par exemple 11 et 12: le premier 1 est le même, mais ensuite l'un a 1 et l'autre 2, il classe donc d'abord 11 puis 12 mais alors et bien entre 10 et 11, il y a bien un 1 mais dans les 100 comme c'est un zéro après le premier 1 il considère que c'est plus petit que le 1 de 11.
Comment faire pour régler ce problème et bien organiser ?
Merci de votre aide.
j'ai dans ma table "membres" par exemple, les membres qui sont identifiés par un id unique, commençant par 1 et qui est auto incrémenté.
Le problème c'est lorsque je veut afficher les liste des id, si je fais:
SELECT * FROM membres ORDER BY idet bien il y a un problème.
Alors je met * car je ne veut pas appeler que les id mais aussi les pseudos, enfin, le problème c'est que à l'affichage, jusque 99 sa va, mais à partir de 100 rien ne va plus.
Voici un exemple de ce que j'ai:
1
2
3
4
5
6
7
8
9
10
101
102
103
...
11
12
13
14
15
Les centaines sont affichés après 10.
En fait MySQL classe mal, il regarde le premier et le deuxième.
Par exemple 11 et 12: le premier 1 est le même, mais ensuite l'un a 1 et l'autre 2, il classe donc d'abord 11 puis 12 mais alors et bien entre 10 et 11, il y a bien un 1 mais dans les 100 comme c'est un zéro après le premier 1 il considère que c'est plus petit que le 1 de 11.
Comment faire pour régler ce problème et bien organiser ?
Merci de votre aide.
A voir également:
- Organiser par id (MySQL)
- Id telephone - Guide
- Mysql community download - Télécharger - Bases de données
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Id reseau tv - Forum TNT / Satellite / Réception
- Id=108 - Forum MacOS
6 réponses
Bonjour, moi je n'aurais pas fais comme cela, mais plutôt:
Voilà, test et dit nous si sa marche ;)
Excellente journée à toi aussi.
$result = mysql_query('SELECT * FROM membres WHERE rang = 2 ORDER BY CAST(id AS SIGNED)') or die ("Erreur requette ".mysql_error());
while ($row =mysql_fetch_array ($result) )
{
echo $row['pseudo'].'<br />';
}
mysql_close()
Voilà, test et dit nous si sa marche ;)
Excellente journée à toi aussi.
pouvez vous mettre le bloc de code (quelques lignes à partir de la ligne 1) du fichier concerné ici ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est normal si tu as ta colonnes de données 'id' enregistrée en VARCHAR ou en TEXT. L'affichage 99 > 100 > 11 est typique d'un encodage en texte.
Change-la, mets le format de colonne en INT.
Puis
Change-la, mets le format de colonne en INT.
Puis
SELECT * FROM membres ORDER BY id ASC
Alors d'abord merci à tous pour votre aide.
Alors coronier, non mon champs id est bien en INT, j'ai mis int(11) exactement.
7
Sinon MedAliMeziane voici le bout de code:
Alors coronier, non mon champs id est bien en INT, j'ai mis int(11) exactement.
7
Sinon MedAliMeziane voici le bout de code:
$result = mysql_query('SELECT * FROM membres WHERE rang = 2 ORDER BY CAST(id AS integer)') or die ("Erreur requette ".mysql_error());
while ($row =mysql_fetch_array ($result) )
{
echo $row['pseudo'].'<br />';
}
mysql_close()