Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/05/2007, 14h02   #1
Membre du Club
 
Inscription : mai 2003
Messages : 222
Détails du profil
Informations forums :
Inscription : mai 2003
Messages : 222
Points : 67
Points : 67
Par défaut [SQL] trie colonnes tableau html avec order by

Bonjour,

J'ai un epage recherche.php qui est le resulat d'une requete sql avec 7 colonnes

j'aimerai ajouter des liens sur chaque colonnes pour trier le resulat avec des order by et affiche la page avec les données triees
mais je ne vois comment faire
en fait je crois q'il faut faire lien hypertext sur chaques colonnes
si vous auriez un exemple
digger est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2007, 16h01   #2
Membre actif
 
Étudiant
Inscription : avril 2007
Messages : 181
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Canada

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2007
Messages : 181
Points : 195
Points : 195
Salut,

Pour commencer, chaque entête de colonne de ton tableau en HTML doit comporter un lien vers la page, avec un paramètre de tri :

Code HTML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<table>
    <tr>
        <th>
            <a href="recherche.php?tri=1">Nom champ 1</a>
        </th>
        <th>
            <a href="recherche.php?tri=2">Nom champ 2</a>
        </th>
        <th>
            <a href="recherche.php?tri=3">Nom champ 3</a>
        </th>
    ....(ainsi de suite)...
    </tr>

La partie php qui suit :
Code "PHP :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
// on récupère le paramètre de tri, si il est invalide ou non défini $tri vaudra 0
$tri = intval($_GET['tri']);
 
$sql = 'SELECT champ1, champ2, champ3, champ4, champ5, champ6, champ7 FROM table';
 
$listeTri = array(';', ' ORDER BY champ1;', ' ORDER BY champ2;', ' ORDER BY champ3;', ' ORDER BY champ4;', ' ORDER BY champ5;', ' ORDER BY champ6;', ' ORDER BY champ7;');
 
$sql .= $listeTri[$tri];
 
?>
À partir de là, tu n'as plus qu'à récupérer le retour de la requête contenu dans $sql, et à extraire une à une les lignes et les afficher dans un tableau (les fonctions dépendent du SGBD que tu utilises).
Dans le cas ou $tri vaut 0 (c'est à dire $_GET['tri'] est invalide ou non fourni), c'est la première case du tableau $listeTri qui est ajouté à la requête.
Ici j'ai juste mis un point virgule, tu peux bien sûr choisir de mettre un ORDER BY par défaut.

Bon c'est un truc basique, tu peux largement améliorer ça, en gérant par exemple le cas des tris croissants / décroissants.
De plus je me doute que ta requête doit contenir des restrictions vu que c'est une recherche, alors faut adapter tout ça
Haze. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h21.


 
 
 
 
Partenaires

Hébergement Web