Page 1 sur 1

tri par colonne

Posté : 30 sept. 2005, 18:22
par FAbrice
bonjour,

Souvent sur les sites web, on a la possibilité de choisir par quelle colonne on veut afficher un tableau. est ce que quelqu'un sait faire ca?

je ne sais pas si vous voyez ce que je veux dire :lol:

merci de votre réponse,
FAb

Posté : 30 sept. 2005, 18:34
par Cyrano
Oui, très bien. Question à deux balles: as-tu observé les url sur ce genre de site quand tu choisis l'une ou l'autre colonne pour obtenir le tri en question ?

Si tu observes bien, tu devrais trouver la réponse à ta question très facilement ;)

Posté : 30 sept. 2005, 18:39
par FAbrice
alut Cyrano,

Aahhhhh, les petiot malins!!! une page par type de tri!!!
Je pensais qu'il y avait un moyen plus simple pour faire ca avec une seule page :?

Posté : 30 sept. 2005, 18:41
par Cyrano
lol, à coté ;)

Il n'y a qu'une seule page... et une astuce. On modifie dynamiquement la requête SQL en fonction d'un paramètre envoyé dans l'url et on change le ORDER BY

Posté : 30 sept. 2005, 18:42
par FAbrice
:shock: :shock: :shock: :shock: :shock: :shock: :shock:

et comment kon peut faire ca? :?

Posté : 30 sept. 2005, 19:03
par Cyrano
Avec un switch() :)
<?php
/* Requête de base */
$sql = "SELECT champ1, champ2, champ3 FROM ma_table";
/* On récupère s'il y en a un le paramètre de tri */
$tri = isset($_GET['tri']) ? $_GET['tri'] ? null;
/* S'il y a un paramètre, on va compléter la requête */
if(isset($tri))
{
    $sql .= " ORDER BY";
    switch ($tri)
    {
        case "champ1" : $sql .= " champ1"; 
        break;
        case "champ2" : $sql .= " champ2"; 
        break;
        case "champ3" : $sql .= " champ3"; 
        break;
    }
}
/* éventuellement, on ajoute une limite maxi: */
$sql .= " LIMIT 0, 10";
/* Et on peut maintenant exécuter notre requête. */
?>
Est-ce que ça te semble possible ce genre de chose ? ;)

Posté : 30 sept. 2005, 19:11
par FAbrice
ok, je vais tester ca!!!
Est-ce que ça te semble possible ce genre de chose ?
ben la, c toi le chef, chef :wink:

Posté : 30 sept. 2005, 19:19
par Cyrano
Mouais, tu n'as pas l'air convaincu par la logique du système :-k
Enfin bon, teste, tu verras en le faisant :)

Posté : 03 oct. 2005, 18:38
par FAbrice
ayé, je viens de tester et c OK!!! 8)

merci bcq,
FAb

Posté : 03 oct. 2005, 19:03
par Cyrano
Un petit [Résolu] alors ?

Posté : 03 oct. 2005, 19:07
par FAbrice
:oops: dsl :oops: