Fonction ORDER BY dans une requête dynamique

Eléphanteau du PHP | 25 Messages

30 nov. 2006, 10:06

bonjour,
je voudrais savoir à quel niveau il faut que je place ORDER BY pour que ça fonctionne dans mon code:
$sqlcond=array(); 
$sql="SELECT num FROM loc"; 

if (!empty($dep)) 
{ 
$sqlcond[]="dep='".$dep."'"; 
} 
if (!empty($cat)) 
{ 
$sqlcond[]="cat='".$cat."'"; 
} 
if (!empty($cap)) 
{ 
$sqlcond[]="cap='".$cap."'"; 
} 

if (count($sqlcond)>0) 
{ 
$sql.=" WHERE ". implode(" AND ", $sqlcond); 
} 
merci d'avance pour votre aide
ps: j'ai déja essayé +sieurs conbinaisons sans succès

Eléphant du PHP | 396 Messages

30 nov. 2006, 11:07

ORDER BY se met à la fin de la requête.
Mais tu veux mettre ORDER BY quoi?

Eléphanteau du PHP | 25 Messages

30 nov. 2006, 11:10

comme ça :
$sql.=" WHERE ". implode(" AND ", $sqlcond). " ORDER BY date"; ?

Eléphant du PHP | 396 Messages

30 nov. 2006, 11:13

Oui.
N'oublies pas de mettre le ORDER BY même si $sqlcond est vide ;)

Mammouth du PHP | 592 Messages

30 nov. 2006, 11:52

salut
juste pour info :

Code : Tout sélectionner

$sql.=" WHERE ". implode(" AND ", $sqlcond). " ORDER BY date ASC"; ?
--> tri croissant

Code : Tout sélectionner

$sql.=" WHERE ". implode(" AND ", $sqlcond). " ORDER BY date DESC"; ?
--> tri décroissant

mais aussi en recherchant sur google tu aurai pu :
Te supprimer le temps d'attente de la réponse d'un des membres :wink:

Eléphanteau du PHP | 25 Messages

30 nov. 2006, 11:55

merci pour ton aide
et bonne journée ! :D
[/php]