tri par colonne

Eléphant du PHP | 289 Messages

30 sept. 2005, 18:22

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
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

30 sept. 2005, 18:34

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 ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

30 sept. 2005, 18:39

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 :?
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

30 sept. 2005, 18:41

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
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

30 sept. 2005, 18:42

:shock: :shock: :shock: :shock: :shock: :shock: :shock:

et comment kon peut faire ca? :?
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

30 sept. 2005, 19:03

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 ? ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

30 sept. 2005, 19:11

ok, je vais tester ca!!!
Est-ce que ça te semble possible ce genre de chose ?
ben la, c toi le chef, chef :wink:
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

30 sept. 2005, 19:19

Mouais, tu n'as pas l'air convaincu par la logique du système :-k
Enfin bon, teste, tu verras en le faisant :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

03 oct. 2005, 18:38

ayé, je viens de tester et c OK!!! 8)

merci bcq,
FAb
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)

Mammouth du PHP | 19672 Messages

03 oct. 2005, 19:03

Un petit [Résolu] alors ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 289 Messages

03 oct. 2005, 19:07

:oops: dsl :oops:
je dois être la seule souris au monde qui ne fait pas peur aux néléphants ! :=)