Tri de ma table sql avec bouton a href

Résolu/Fermé
Psore Messages postés 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 - 6 mars 2015 à 15:11
Psore Messages postés 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 - 9 mars 2015 à 11:57
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
6 mars 2015 à 15:28
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
Modifié par jordane45 le 6/03/2015 à 15:30
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 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 1
6 mars 2015 à 15:34
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
6 mars 2015 à 15:50
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 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 1
6 mars 2015 à 15:56
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 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 1
6 mars 2015 à 15:58
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 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
6 mars 2015 à 16:11

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 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 1
6 mars 2015 à 16:46
Merci d'avoir pris le temps mais j'ai fini par trouver.
0
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717 > Psore Messages postés 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015
6 mars 2015 à 17:07
Tu as fais quoi alors ?
0
Psore Messages postés 107 Date d'inscription lundi 30 septembre 2013 Statut Membre Dernière intervention 1 décembre 2015 1
9 mars 2015 à 11:57
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