order by

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : order by

Re: order by

par Ryle » 05 sept. 2010, 22:58

Pour la gestion des catégories, puisque ta liste est triée par type, tu peux le faire en utilisant une variable temporaire qui va contenir la catégorie courante. Il te suffit alors de ne l'afficher que lorsqu'elle change :
$typeEnCours = '';

while ($row = mysql_fetch_assoc(...) ) {
   if ($typeEnCours != $row['type']) {
      echo '<h1>' . $row['type'] . '</h1>';
      $typeEnCours = $row['type'];
   }

   echo $row['nom'], ...

}

Re: order by

par fabrice88250 » 05 sept. 2010, 22:06

non c'est bon sa fonction merci (j'ai édité mon message).

Merci Ryle pour ton aide. On apprend bien avec phpfrance. Merci.

Re: order by

par Ryle » 05 sept. 2010, 22:02

Un message d'erreur ?

Est-ce que ta requête fonctionne quand tu l'exécutes directement avec mysql ou dans phpmyadmin ?
Comment traites tu le résultat de la requête ? (fetch_row, fetch_assoc, .. ?)

Re: order by

par fabrice88250 » 05 sept. 2010, 21:51

je viens d'essayé la solution de Ryle mais je n'ai du coup plus aucunes données qui s'affichent.
Non c'est bon désolé erreur de majuscule et du coup rien ne s'affichait.

par contre comment puis-je faire pour qu'a chaque chamgement de type au niveau de mon affichage j'ai le type qui soit mis en evidence.
par exemple :
Studio:
sudio1, studio2...
F1 :
f11, f12....

car là sa s'affiche comme ça :

sudio1, studio2... f11, f12....f2, f3............

Re: order by

par Ganesh » 05 sept. 2010, 21:43

Bonsoir,

Les solutions proposées par Ryle pourront te permettre d'effectuer le tri que tu désires.
Une autre solution est d'utiliser le typage du champ sur lequel tu désires faire le tri; grâce au type ENUM, tu pourras ordonner tes lignes en fonction de ce champ en suivant l'ordre défini lors de la définition de ce champ.

Re: order by

par fabrice88250 » 05 sept. 2010, 21:40

je pense pas car je n'ai pas de champs 'name' et je veux un ordre bien definit. pas un ordre croissant ou decroissant ou alphabetique ou...
un ordre bien definit.

ok ryle je vais essayé cette methode de tri sinon j'ajouterai un champ dans ma base.

Re: order by

par Ryle » 05 sept. 2010, 21:39

L'instruction order by ne permet que de trier par ordre croissant ou décroissant. Dans le cas d'une chaine de caractère, le tri se fait par ordre alphabétique. Mais tu ne peux pas lui imposer un tri particulier...

Pour faire ce que tu veux, le plus simple c'est probablement d'ajouter un champ dans ta base qui te permettra de servir de clé de tri.

Une autre solution pourrait consister à jouer avec les conditions case/when de mysql, et associer un ordre à chaque type. Tu peux ainsi créer une colonne qui te servira pour le tri :
SELECT CASE WHEN type = 'studio' THEN 1 WHEN type = 'f2' THEN 2 ... END AS tri
  , type, prix, .... 
  FROM IWlocations 
  ORDER BY tri

Re: order by

par igor206 » 05 sept. 2010, 21:29

Code : Tout sélectionner

Order by name
non?

order by

par fabrice88250 » 05 sept. 2010, 17:43

Bonjour,
j'ai un requete :
SELECT * FROM IWlocations ORDER BY type DESC, prix ASC
je voudrai choisir l'ordre de type pour l'affichage.
C'est a dire type contiend ces valeurs : studios, f1, f2, f3,...., garage,...

comment dans ma requette dire que je veu en premier par exemple studios , puis en 2 f1, puis ..... au lieu du desc qui classe par ordre croissant ou decroissant (asc ou desc)