Page 1 sur 1

Classement par ordre alphabetique

Posté : 02 juil. 2006, 19:47
par Ceubex
Bonjour,

Voilà j'administre un site qui enregistre les scores de joueurs avec des prises d'écran ou des vidéo de la partie. Et j'aimerais créer une base de donnée avec 5 champs : Pseudo, Score, Commentaire, Taille, Type (image ou vidéo).

Mais de façon à s'y retrouver j'aimerais qu'on puisse classer les colone. Comme dans les boite mail où quand on clique sur Sujet par exemple ça les classe par ordre alphabétique.

J'aimerais aussi classer les taille de fichier et les score du plus grand au plus petit.

Merci d'avance

Posté : 02 juil. 2006, 20:01
par alexbad
Classer les colonnes? Tu veux dire laisser le choix d'ordonner par différents élément, croissant ou décroissant? Comme la liste des membres sur ce forum phpBB?

D'abord tu dois connaître la clause ORDER BY de MySQL. On peut ordonner des nombres dans l'ordre décroissant en ajoutant le mot DESC après le nom du champ et en ordre croissant en ajoutant le mot ASC (par défaut, facultatif).

Ordonné par id décroissant :

Code : Tout sélectionner

SELECT * FROM table ORDER BY id DESC
Ordonné par id croisant :

Code : Tout sélectionner

SELECT * FROM table ORDER BY id
Maintenant, si tes champs contiennent des chaînes de caractères, ce sera l'ordre alphabétique qui sera appliqué.

Sur mon site, pour la liste des membres, ce que je fais :

Code : Tout sélectionner

<form action="membres.php" method="get"> <p>Trier par : <select name="order"> <option value="pseudo">Pseudo</option> <option value="date">Date d'inscription</option> <option value="statut">Statut</option> </select> </p> <p>Dans l'ordre : <select name="sens"> <option value="croissant">Croissant</option> <option value="decroissant">Décroissant</option> </select> </p> <p><input type="submit" value="Classer" /></p> </form>
Ensuite, dans mon code PHP, je construis la requête en fonction de ces données :
<?php
$ordre = 'ASC';
$by = 'pseudo';
if (isset($_GET['sens']))
­{
     if ($_GET['sens'] == 'decroissant')
    {
          $ordre = 'DESC';
     }
     else
     {
          $ordre = 'ASC';
      }
}
if (isset($_GET['order']))
{
     if ($_GET['order'] == 'pseudo' || $_GET['ordre'] == 'date' || $_GET['order'] == 'statut')
     {
           $by = $_GET['order'];
      }
}

$requete = "SELECT * FROM membres ORDER BY " . $by . " " . $ordre;
?>
Si j'ai bien compris ta question initiale ça devrait t'aider ;) .

Posté : 03 juil. 2006, 10:55
par Ceubex
Oui c'est parfaitement ça merci. Il y a juste une chose que je ne comprend pas, c'est où sont stockées ces informations (pseudo, date d'inscription, statut) ? Est-ce qu'il faut les mettre dans un fichier texte ? Dans la même page ?

Posté : 03 juil. 2006, 11:01
par guilt92
Bonjour,

je te conseille d'utiliser une base de données. Regarde les tutoriaux phpfrance par exemple sur les bases de données Mysql et le commandes PHP associées...