Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/07/2007, 08h06   #1
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
Par défaut [SQL] Problème d'ordre numérique

Bonjour,
Je vous écris car j'ai un problème d'affichage par ordre numérique lorsque je sors des données de la BD par ordre alphabétique : si j'ai 1, 2 et 10 il m'affichera :
1
10
2
Savez-vous comment faire pour rectifier ce problème ?
Je travail avec Easy/php.

@+ Seb
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 08h13   #2
Membre confirmé
 
Avatar de max44410
 
Étudiant
Inscription : juin 2003
Messages : 426
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2003
Messages : 426
Points : 259
Points : 259
Envoyer un message via MSN à max44410 Envoyer un message via Skype™ à max44410
Order By <champ> DESC ??

Je ne comprends pas trop ton probleme...
quel est le type de ton champ ??
peut on voir la requete que tu execute ??
__________________
Venez voir par là...
max44410 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 08h31   #3
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
Salut,

Ton champ doit surement être en type varchar ou char, ce qui provoque ce tri. en effete lors d'un tri comme tu souhaite le faire, 10 est avant 2 si ton type de champ n'est pas de type numérique.

Deux soluce :
  • Soit tu modifier le type de ton champ
  • Soit tu utilise la fonction Cast en sql pour transformer ton champ varchar en integer
Cordialement

Michael
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 09h49   #4
Membre éclairé
 
Avatar de nicocsgamer
 
Inscription : mars 2005
Messages : 324
Détails du profil
Informations personnelles :
Âge : 27
Localisation : Luxembourg

Informations forums :
Inscription : mars 2005
Messages : 324
Points : 365
Points : 365
Envoyer un message via MSN à nicocsgamer
Sinon tu peux utiliser natsort pour trier ton tableau une fois sortie de la base.
nicocsgamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 10h29   #5
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
Merci à tous d'avoir pris le temps de m'aider.

Ma requête est :

Code :
1
2
3
SELECT NUMGARAGE, NOMGARAGE
FROM GARAGE
ORDER BY NUMGARAGE, NOMGARAGE
En effet mon NOMGARAGE est en VARCHAR d’où mon affichage :
Garage 1
Garage 10
Garage 2

Comme mon champ est mi-alphabétique et mi-numérique je ne pense pas pouvoir modifier le type de mon champ ou de transformer mon champ. Je vais essayer avec natsort il me semble que c’est exactement ce qu’il me faut il traite les chaînes alphanumériques.

MERCI
@+ Seb
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 11h22   #6
Membre à l'essai
 
Inscription : mai 2007
Messages : 137
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 137
Points : 22
Points : 22
Je n'arrive pas à utiliser la fonction natsort est ce que vous pourriez m'aider.

Mon code source est :

Code :
1
2
3
4
5
6
7
8
$sql = "SELECT NUMGARAGE, NOMGARAGE FROM GARAGE ORDER BY NUMGARAGE, NOMGARAGE";
$requete = mysql_query( $sql, $cnx ) ;
while( $result = mysql_fetch_object( $requete ) ){
...
$result->NUMGARAGE
$result->NOMGARAGE
...
}
J'ai essayer en mettant après la boucle while :
mais cela ne m'a rien fait
Seb981 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h35.


 
 
 
 
Partenaires

Hébergement Web