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 28/01/2011, 10h09   #1
Futur Membre du Club
 
Inscription : février 2010
Messages : 79
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 79
Points : 17
Points : 17
Par défaut pb alias dans "order by"

Bonjour,

J'ai une requete qui utilise un alias dans un order by :
Code :
1
2
3
4
 
$req ="select xxx, xxx, (prixJournee*duree) as prixTotal, ... from XXX, XXX, ...
where ...
order by prixTotal asc" ,
C'est bizarre car cela semble marcher dès fois, sauf que parfois ça n'est pas tout à fait le bon ordre !?

Une idée ??
jpguiche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 11h09   #2
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
si l'alias est reconnu dans le order by, alors ce que tu racontes est impossible.

il manque un détail important à ton histoire!
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 12h13   #3
Futur Membre du Club
 
Inscription : février 2010
Messages : 79
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 79
Points : 17
Points : 17
Par défaut peut-être un détail qui compte

Merci gene69,

Peut-être que le détail qui manque est que prixJournee et duree sont des colonnes appartenant chacune à une table différente qui intervient dans la jointure :
Code :
1
2
3
4
 
$req ="select xxx, xxx, (prixJournee*duree) as prixTotal, ... from XXX,YYY, ...
where ...
order by prixTotal asc" ,
prixJournee col de XXX
duree col de YYY

est-ce que cela expliquerait le pb ?
jpguiche est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 12h24   #4
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
est ce que tu peux tester la forme suivante?
Code :
1
2
3
4
5
6
 
SELECT x.PROD 
FROM ( 
 SELECT a.coef*b.value as PROD
 FROM a, b ) as x
ORDER BY PROD
___
EDIT: pour ma culture, quelle version de mysql?
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 12h57   #5
Futur Membre du Club
 
Inscription : février 2010
Messages : 79
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 79
Points : 17
Points : 17
Par défaut erreur de ma part

Merci gene69,

Je viens de m'apercevoir de mon erreur :
le prixTotal calculé dans la requête n'était pas celui affiché (qui tenait compte d'une "taxe" en plus) de ce fait pour prixJournee = 0 on avait prixTotal =0 donc pas d'ordre entre 2 lignes de même prixTotal et dans ce que j'affichais je rajoutais la "taxe" journalière donc dans ce cas il y avait bien un ordre (plus grand = duree la plus grande)

Donc pas de pb avec SQL !
Désolé de t'avoir fait bosser pour rien.

Merci encore.
jpguiche est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h42.


 
 
 
 
Partenaires

Hébergement Web