Trier les colonnes d'un tableau [Résolu/Fermé]

Signaler
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
-
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
-
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

7 réponses

Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

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

Merci :)
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
Tu te fais des penses bêtes ? :)
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
Oui en quelques sortes ou si jamais quelqu'un tombe sur le sujet
Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
PS : la question a deja ete posee plusieurs fois mais jamais de reponse donc c'est pourquoi je la pose a nouveau
Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
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
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
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
Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
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 ?
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
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
Messages postés
216
Date d'inscription
lundi 2 décembre 2013
Statut
Membre
Dernière intervention
10 octobre 2016
21
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é ?
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
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
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
Je up le topic car je n'ai toujours pas trouve solution a mon probleme
Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
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 !
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
Je suis actuellement le cours de jQuery de OpenClassrooms, je vous tiendrais au courant si j'ai besoin d'aide :) Merci
Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
Ok. Vous effectuez vos requêtes SQL en pdo ? ou mysql ?
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
En PDO
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
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 :)
Messages postés
1458
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
18 août 2020
121
J'ai ajouter quelques commentaires et corriger quelques erreurs.
Si tu ne comprends pas quelque chose, n'hésite pas à preciser quoi.
Messages postés
63
Date d'inscription
jeudi 3 janvier 2013
Statut
Membre
Dernière intervention
18 mars 2015
3
Merci :)