Trier les colonnes d'un tableau

Résolu/Fermé
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 - 3 févr. 2015 à 16:19
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 - 5 févr. 2015 à 17:48
Bonjour,

j'ai un tableau en PHP qui repose sur une BDD phpMyAdmin

je voulais savoir comment faire pour trier les resultats dans mon tableau par ordre croissant ou decroissant en cliquant sur le nom de la colonne que je souhaite trier

j'espere que vous avez compris et vous remercie d'avance
Bonne journee
A voir également:

7 réponses

Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 févr. 2015 à 16:54
Alors,
plusieurs options s'offre à vous.

- écrire un script en JavaScript qui pourra faire le tri dans le tableau HTML
(Je pourrai pas t'aider, je galère moi même sur un problème similaire, mais j'ai l'algo en tête et je vais surement pondre ça dans les jours à venir)

-Utilisez une librairie JavaScript qui fera le tri automatiquement :http://tympanus.net/codrops/2009/10/03/33-javascript-solutions-for-sorting-tables/

C'est deux premières options permette un tri dynamique

- Créer un lien html sur ID ou Clients qui enverra une instruction en paramètre (page.php?tri=ID&opt=desc)

Puis coder une fonction PHP qui va récupéré les variables tri et opt afin de trier le tableau selon l'id ou le client de façon croissant ou décroissant avant de l'afficher

Cette option nécessite une actualisation de la page.

Si vous n'avez pas de contrainte concernant le langage à utiliser, la troisième option me parait la plus simple.

Cordialement

1
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
3 févr. 2015 à 17:02
Merci pour tes conseils, je vais aller tester avec ca, je mettrai le post en resolu si jamais je trouve une solution

Merci :)
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
3 févr. 2015 à 17:50
1
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 févr. 2015 à 18:00
Tu te fais des penses bêtes ? :)
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
3 févr. 2015 à 19:38
Oui en quelques sortes ou si jamais quelqu'un tombe sur le sujet
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
Modifié par Exileur le 5/02/2015 à 16:56
C'est loin d'être Opti, mais ça fera déjà une idée de comment s'y prendre :

1) Creer une page PHP, qui récupère deux variables, ordre et tri.
Elle contient également la requête PDO qui s'occupe du tri.

2) Utiliser ce code pour appeler la fameuse page :
function requete(a, b){ // on crée une fonction JS avec comme "entrée" a et b
 $.ajax({ //on appel ajax
   type: "GET", //on indique le type d'envoi (POST ou GET) en soit on s'en fiche ici puisque qu'on passe directement les paramètres dans l'url (méthode barbare) 
   url: "requete.php?ordre="+a+"&tri="+b // on retrouve a et b de notre fonction
 });
}


Le code de ton tableau HTML :
<th> <!-- th pour le titre, la premiére ligne du tableau -->
<a href="#" onclick="javascript:requete('id', 'desc');">ID</a> <!--on creer un lien qui ne méne à rien (#) et on ajoute onclick (quand l'utilisateur clique sur le lien, on execute la fonction requete avec en paramètre) exemple, l'ID et DESC pour un tri décroissant par ID -->
</th>


3) Pour l'affichage/la mise à jour du résultat, il devra être fait en JS depuis la page PHP après avoir récupérer les infos

ou utiliser le success de la requete :


type: "",
url: "",
success: function(){ //success s'execute si la requete demander c'est bien effectué
}


edit: Commentaires, corrections
1
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
3 févr. 2015 à 16:25
PS : la question a deja ete posee plusieurs fois mais jamais de reponse donc c'est pourquoi je la pose a nouveau
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 févr. 2015 à 16:30
Salut;

Il me semble, que la question a été posé ici (et qu'elle a été résolu):
https://forums.commentcamarche.net/forum/affich-1313150-php-trier-un-tableau

Maintenant, j'entends parler de colonnes. c'est donc un tableau html que vous voulez triez ?

Cordialement
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
3 févr. 2015 à 16:34
J'ai justement deja trouve cette reponse sur le site mais cela ne m'a pas aide. La structure de mon tableau est en html, sinon tout ce qui est dedans c'est du PHP car il s'agit en fait du contenu de ma BDD.

Le probleme le plus gros est que c'est mon maitre de stage qui me demande de faire cela et leur script que je dois modifier fait plus de 1000 lignes, c'est pour cela que je recherche un peu d'aide :p
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 févr. 2015 à 16:39
Si je comprend bien.
Vous avez une BDD, vous récupérez les infos en PHP et vous affichez via une boucle le tout dans un tableau html. C'est bien ça ?
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
Modifié par Loobsix le 3/02/2015 à 16:46
Oui parfaitement
Maintenant je voudrais que le tableau se trie quand on clique sur le titre d'une des colonnes : par exemple le tableau des clients, je veux que les resultats soient affiches dans l'ordre croissant des ID des clients, donc je clique sur idClient -> le tableau se trie.
Ensuite je voudrais que ce soit trie en decroissant, je reclique.

PS : desole je met aucun accent mais je suis a l'etranger et le clavier est en qwerty
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
3 févr. 2015 à 20:09
Il ne parlerai pas de trier un array php plutôt ?

tout est la : https://www.php.net/manual/fr/array.sorting.php

de plus si ce tableau vient de mysql, n'est il pas plus simple de changer la requête en fonction du tri souhaité ?
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
3 févr. 2015 à 22:21
Ok merci mais cela me permet de trier le tableau lors de son affichage, mais je voudrais le trier comme je veux par la suite, par exemple si j'ai : ID - Nom - Prenom

Le tableau se trie par ordre croissant des ID au depart : chose que je pourrais faire avec la page que tu m'a donne. Par la suite si je veux trier par ordre decroissant je reclique sur ID
Si je veux trier par ordre croissant des prenoms je clique sur prenom, etc, etc
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
4 févr. 2015 à 20:42
Je up le topic car je n'ai toujours pas trouve solution a mon probleme
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
Modifié par Exileur le 4/02/2015 à 22:50
Quel est le problème ?
Qu'elle solution parmi les trois proposé avez vous choisis ?

Quel est le cahier des charges ? (essayez d'être clair ! Tri dynamique ? etc ...)
Avez vous au moins testé ou tenter l'une des trois solution ?
Si oui, envoyer nous votre code !

Je tiens à rappeler que CCM est un forum d'entre aide ! Nous ne sommes pas la pour faire le travail à votre place, mais pour vous aidez dans l'avancement de ceux ci !
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
4 févr. 2015 à 23:08
Je suis actuellement le cours de jQuery de OpenClassrooms, je vous tiendrais au courant si j'ai besoin d'aide :) Merci
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
5 févr. 2015 à 14:32
Ok. Vous effectuez vos requêtes SQL en pdo ? ou mysql ?
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
5 févr. 2015 à 15:34
En PDO
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
5 févr. 2015 à 16:34
Merci, mais c'est un peu du Chinois pour moi
je vais m'aider de ton script et du tuto de OC pour faire un truc

Merci :)
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
5 févr. 2015 à 16:57
J'ai ajouter quelques commentaires et corriger quelques erreurs.
Si tu ne comprends pas quelque chose, n'hésite pas à preciser quoi.
0
Loobsix Messages postés 63 Date d'inscription jeudi 3 janvier 2013 Statut Membre Dernière intervention 18 mars 2015 3
5 févr. 2015 à 17:48
Merci :)
0