Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 10/02/2012, 00h13   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 54
Points : 14
Points : 14
Par défaut classement d'un tableau en croissant et décroissant

Bonjour à tous,
j'ai le soucis suivant, j'ai un tableau que j'obtiens via MySQL. Je souhaiterais rendre les colonnes de ce tableau "dynamique" : un clique sur la colonne et ca classe les lignes en croissant, un autre clique et ca classe en decroissant.. rien de bien méchant si on fais des "if" pour chaque colonne. Cependant, je voudrais rendre cela automatique.
voici le code des colonnes de mon tableau :
Code :
1
2
3
4
 
<th><a href="prospect_location_liste.php?ordre=nom<?php if(isset($ordre) && $ordre =='nom') { echo '2'; }?>"><u>Identité</u></a></th>
<th><a href="prospect_location_liste.php?ordre=type_bien<?php if(isset($ordre) && $ordre =='type_bien') { echo '2'; }?>"><u>Type bien</u></a></th>
<th><a href="prospect_location_liste.php?ordre=prix<?php if(isset($ordre) && $ordre =='prix') { echo '2'; }?>"><u>Prix</u></a></th>
et voici le code pour trier que je voudrais faire mais qui ne marche pas
Code :
1
2
3
4
5
6
7
8
9
 
 if($ordre == $ordre)
{
   $req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by '$ordre'"; 
}
if($ordre == $ordre.'2')
{
   $req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by '$ordre' DESC";
}
le premier "if" marche bien, mais le second non.. je pense à cause de cela
Code :
if($ordre == $ordre.'2')
Je sais que je peux faire cela :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  if($ordre == 'prix')
					  {
					     $req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by prix";
					  }
					  if($ordre == 'prix')
					  {
					     $req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by prix DESC";
					  }	
					  if($ordre == 'type_bien')
					  {
					     $req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by type_bien";
					  }
					  if($ordre == 'type_bien2')
					  {
					     $req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by type_bien DESC";
					  }
Mais comme dis plus haut, je voudrais un minimum de code..
voila j'espere que je suis clair.. Merci d'avance pour votre aide
minimoof est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 00h23   #2
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Bonjour,
C' est presque un exemple typique d' Ajax non ?
tu devrais essayer.
Et si c'est ton premier Ajax je veux bien te faire un model
A++ Christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 08h56   #3
Membre Expert
 
Avatar de Bebel
 
Homme David B.
Développeur informatique
Inscription : avril 2003
Messages : 742
Détails du profil
Informations personnelles :
Nom : Homme David B.
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : avril 2003
Messages : 742
Points : 1 085
Points : 1 085
bonjour sinon tu as une solution plus simple

Code :
1
2
3
4
 
 
$req = "select * from prospect WHERE utilisateur = 'charlotte' AND actif = 'oui' AND type = 'location' order by " . $ordre . " " . $sort_order;
					  }
Avant tu vérifies que $ordre corresponds bien a une de tes colonnes, sinon tu mets une valeur par défaut. ( prix par exemple).

et pour le $sort_order, tu vérifie que la valeur soit égale à 'ASCENDING' or 'DESCENDING'.

et pour ton entête de tableau tu fais quelque chose comme ca.

Code :
1
2
3
4
5
6
 
<th>
    <a href="prospect_location_liste.php?ordre=nom&sort_order=<?php if(isset($ordre) && $ordre =='nom') { echo 'ASCENDING'; } else { echo 'DESCENDING'; }?>">
       <u>Identité</u>
    </a>
</th>
__________________
Tout énigme a une solution ! Tout est question de discipline !
Bebel est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 10h59   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Te casse pas la tête, ça existe déjà: http://tablesorter.com/docs/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2012, 11h22   #5
Membre chevronné
 
Avatar de christele_r
 
Femme Christele
Inscription : novembre 2009
Messages : 661
Détails du profil
Informations personnelles :
Nom : Femme Christele
Âge : 39
Localisation : France

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 661
Points : 690
Points : 690
Citation:
Envoyé par Benjamin Delespierre Voir le message
Te casse pas la tête, ça existe déjà: http://tablesorter.com/docs/
Trop TOP
Mille mercis a toi pour ce lien.
Christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 13h41   #6
Candidat au titre de Membre du Club
 
Inscription : mai 2007
Messages : 54
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 54
Points : 14
Points : 14
Merci pour votre coup de main! je test ca et viens mettre résolu quand c'est good!
minimoof 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 09h47.


 
 
 
 
Partenaires

Hébergement Web