Tri de ma table sql avec bouton a href

Résolu
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   -  
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   -
Hello les gens petit problème du jour si quelqu'un peut m'apporter ses lumières.

Je veux trier ma table sql par ordre de prix croissant ou décroissant en appuyant simplement sur un bouton voila mon code :


if (!isset($_REQUEST["orderby"])) {

$orderby = "prix *1 ASC";

}else{

$orderby = "date ASC";

}

$q = "SELECT
articlesmobilier.id,
articlesmobilier.titre,
articlesmobilier.gamme,
articlesmobilier.slogan,
articlesMobilier.largeurMobilier,
articlesmobilier.hauteurMobilier,
articlesmobilier.prix,
articlesmobilier.description,
articlesmobilier.options,
articlesmobilier.dossierCatalogue,
articlesmobilier.nomCatalogue,
articlesmobilier.image,
articlesmobilier.date,
articlesmobilier.categorie
FROM articlesmobilier
WHERE articlesmobilier.categorie = '$categorie'
AND articlesmobilier.id != $id
ORDER BY $orderby
";


et voila mon a href qui est sur une autre page :


<div class="triArticles">
<a href="<?php $_REQUEST["categorie"]?>?orderby=asc">Ordre croissant</a>
</div>


Tout dois marcher normalement ?? je ne comprend pas ou est mon erreur car rien ne ce passe.....il passe bien dans le if mais reste toujours sur la première condition ???

Merci par avance de votre aide.

François.
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,
TU ne changes pas ton lien .. donc il est toujours sur ASC...
Essayes un truc du genre :
<div class="triArticles">
	<a href="<?php $_REQUEST["categorie"]?>?orderby=<?php  echo $_GET['orderby']=='asc' ? 'desc' : 'asc';  ?>">Ordre croissant</a>
</div>


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Et dans le PHP
$order = isset($_REQUEST["orderby"])?$_REQUEST["orderby"]:'asc';
if ($order=='asc')) {
 $orderby = "prix *1 ASC";
}else{
 $orderby = "prix *1 DESC";
}

0
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   1
 
Ce n'est pas le fais que je change de lien normalement quand je clic sur le lien que j'ai fais il mes bien dans l'url "orderby" et comme cité dans le if si il est !isset il range tout par date sinon par prix mais il n'y qu'une seule condition qui marche à chaque fois...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Désolé.. je pensais à du ASC ou DESC.
Ok ..

Donc :
<div class="triArticles">
	<a href="<?php $_REQUEST["categorie"]?>?orderby=<?php  echo $_GET['orderby']=='asc' ? 'asc' : '';  ?>">Ordre croissant</a>
</div>


et dans le PHP:
$order = isset($_REQUEST["orderby"]) && !empty($_REQUEST["orderby"])?TRUE:FALSE);
if (!$order)) {
	$orderby = "prix *1 ASC";
}else{
	$orderby = "date ASC";
}
0
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci de prendre de votre temps mais cette solution n'est pas bonne j'ai essayé cela mais ça ne marche toujours pas.... :


if (!isset($_REQUEST["orderby"])) {
$orderby = "date ASC";
}

if (isset($_REQUEST["orderby"]) && $_REQUEST["orderby"] == "asc") {

$orderby = "prix *1 ASC";

}

if (isset($_REQUEST["orderby"]) && $_REQUEST["orderby"] == "desc") {

$orderby = "prix *1 DESC";

}

$q = "SELECT
articlesmobilier.id,
articlesmobilier.titre,
articlesmobilier.gamme,
articlesmobilier.slogan,
articlesMobilier.largeurMobilier,
articlesmobilier.hauteurMobilier,
articlesmobilier.prix,
articlesmobilier.description,
articlesmobilier.options,
articlesmobilier.dossierCatalogue,
articlesmobilier.nomCatalogue,
articlesmobilier.image,
articlesmobilier.date,
articlesmobilier.categorie
FROM articlesmobilier
WHERE articlesmobilier.categorie = '$categorie'
AND articlesmobilier.id != $id
ORDER BY $orderby
";


Liens :


<div class="triArticles">
<a href="<?php $_REQUEST["categorie"]?>?orderby=asc">Ordre croissant</a>
<a href="<?php $_REQUEST["categorie"]?>?orderby=desc">Ordre croissant</a>
</div>


Je comprend vraiment pas mon code est pourtant enfin je crois...
0
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   1
 
Si le le paramètre orderby est = asc il me fais mes les articles par prix en ASC et si il est égal à desc alors par prix en DESC et sinon par date je comprend pas c'est pourtant d'un simple ce genre de choses....
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 

Si le le paramètre orderby est = asc il me fais mes les articles par prix en ASC et si il est égal à desc alors par prix en DESC et sinon par date je comprend pas c'est pourtant d'un simple ce genre de choses....

Ah ok.. là c'est clair....

Donc :
$order = isset($_REQUEST["orderby"]) && !empty($_REQUEST["orderby"])?$_REQUEST["orderby"]:FALSE);
switch($order){
 case 'asc':
  $orderby = "prix *1 ASC";
  break;
 case 'desc':
  $orderby = "prix *1 DESC";
  break;
 default:
  $orderby = "date ASC";
  break;
}






0
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci d'avoir pris le temps mais j'ai fini par trouver.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention  
 
Tu as fais quoi alors ?
0
Psore Messages postés 115 Date d'inscription   Statut Membre Dernière intervention   1
 
J'ai tout simplement fais ceci :


if (!isset($_GET["orderby"])) {
$orderby = "date ASC";
}

if (isset($_GET["orderby"])) {
if ($_GET["orderby"] == "prixcroissant") {

$orderby = "prix *1 ASC";

}

if ($_GET["orderby"] == "prixdecroissant") {

$orderby = "prix *1 DESC";

}

if ($_GET["orderby"] == "derniersparus") {

$orderby = "date ASC";

}
}


et les liens (j'ai rewriting les urls) :

<a href="<?php echo $_REQUEST["categorie"]?>_prixcroissant#infoArticles">Prix croissants</a>
<a href="<?php echo $_REQUEST["categorie"]?>_prixdecroissant#infoArticles">Prix décroissants</a>
<a href="<?php echo $_REQUEST["categorie"]?>_derniersparus#infoArticles">Derniers parus</a>
0