[PHP] Plusieurs conditions avec $_GET

Fermé
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 - 18 juin 2009 à 14:09
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 - 18 juin 2009 à 16:12
Bonjour,
j'aimerai mettre sur mon site un systeme de tri des résulats à disposition des utilisateur. Par exemple si le visiteur clic une fois sur Date, les résultats seront triés du plus récent au plus vieux. Si il reclic sur Date les résultats seront triés du plus vieux au plus récent et ainsi de suite...

voici le code que j'ai essayé, mais il ne fonctionne qu'a moitié car j'ai l'impression que le navigateur ne prend bien en compte la double condition...


if ($_GET['sort'] == 'artist' && $_GET['order']=='ASC')
{
echo'<a href="tag.php?'.$tag.'='.$get.'&sort=artist&order=DESC">Artist</a> | ';
}
elseif ($_GET['sort'] == 'artist' && $_GET['order']=='DESC')
{
echo'<a href="tag.php?'.$tag.'='.$get.'&sort=artist&order=ASC">Artist</a> | ';
}

...

$reponse = mysql_query("SELECT * FROM upload WHERE $champ='$get' AND confirm='1' ORDER BY $sort $order LIMIT $premierMessageAafficher, $nombreDeMessagesParPage")or exit(mysql_error());

Peut etre qu'il faut utiliser du javascript, j'en ai aucune idée. Si le quelqu'un peut m'apporter une solution je lui en serait reconnaissant.
Merci d'avance

6 réponses

nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
18 juin 2009 à 15:53
j'ai bien regardé je ne vois pas d'où peut venir l'erreur :/
quand tu demande a les trier par date ça marche et quand tu demande par artiste ça ne veut plus trier, c'est
bien ça ton problème ?
par rapport a ce que tu as dis comme quoi le bouton trier par artiste changerait quand on clique sur trier par date, je vois pas trop comment ça serait possible puisque si une des 2 conditions n'est pas rempli ça passe au suivant ?_?

ps ça ne serait pas plus clair/lisible comme ça ?
if ($_GET['sort'] == 'timestamp')
{
	if ($_GET['order']=='ASC')
	{
		echo'<img style="margin-right: 5px;" src="images/1uparrow.png" alt="" WIDTH=10 HEIGHT=10/><a href="?'.$tag.'='.$get.'&sort=timestamp&order=DESC">Date</a> | ';
	}
	else
	{
		echo'<img style="margin-right: 5px;" src="images/1downarrow.png" alt="" WIDTH=10 HEIGHT=10/><a href="?'.$tag.'='.$get.'&sort=timestamp&order=ASC">Date</a> | ';
	}
}
else
{
	echo'<a href="?'.$tag.'='.$get.'&sort=timestamp&order=DESC">Date</a> | ';
}


if ($_GET['sort'] == 'artist')
{
	if ($_GET['order']=='ASC')
	{
		echo'<img style="margin-right: 5px;" src="images/1uparrow.png" alt="" WIDTH=10 HEIGHT=10/><a href="?'.$tag.'='.$get.'&sort=artist&order=DESC">Artist</a> | ';
	}
	else
	{
		echo'<img style="margin-right: 5px;" src="images/1downarrow.png" alt="" WIDTH=10 HEIGHT=10/><a href="?'.$tag.'='.$get.'&sort=artist&order=ASC">Artist</a> | ';
	}
}
else
{
	echo'<a href="?'.$tag.'='.$get.'&sort=artist&order=DESC">Artist</a> | ';
}
2
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
18 juin 2009 à 14:33
je ne vois pas d'où viens l'erreur alors pour résoudre ton problème je te conseille :
- d'afficher la requête MySQL avant de l'envoyer
echo $request="SELECT * FROM upload WHERE $champ='$get' AND confirm='1' ORDER BY $sort $order LIMIT $premierMessageAafficher, $nombreDeMessagesParPage";
$reponse = mysql_query( $request )or exit(mysql_error()); 

- ensuite sur ta page tu récupère la requête et tu regarde si tout va bien
- si tout a l'air d'être bien tu testes la requête manuellement dans MySQL

ça devrait te permettre de mieux cibler l'erreur ou de la réparer
0
sanjuan Messages postés 89 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 6 avril 2014 1
18 juin 2009 à 15:02
bonjour,
tu nous parles de tri par date, et ta requête inclu un tri par artiste?
qu'est ce que tu entends par 'marche à moitié'?
salut
0
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 68
18 juin 2009 à 15:24
@sanjuan: il y'a un tri par artist, par date, par note etc... au choix. Mais en effet je me suis trompé en copiant mon exemple, j'aurai du mettre date à la place.

@nEm3sis j'ai cherché pendant un moment d'ou venait l'erreur, en faite j'ai essayé dans un premier temps le triage par date, ça fonctionnait parfaitement alors j'ai décidé de faire la meme chose avec d'autres criteres de triage. Seulement j'ai l'impression qu'il y'a un conflit avec les conditions $_GET, par exemple si on clic sur "trier par date" le bouton "trier par artistes" va changer lui aussi parce qu'il a rempli UNE des deux conditions >>> if ($_GET['sort'] == 'artist' && $_GET['order']=='ASC')

Je vous met le code complet pour le triage par Date et par Artiste ( les images representes des petites fleche vers le haut ou vers le bas pour savoir dans quel sens va le triage), vous comprendrez sans doute mieux. Mais ce qui m'echappe c'est pourquoi le systeme marche parfaitement pour la condition date et par pour artistes...

voici le code:

if ($_GET['sort'] == 'timestamp' && $_GET['order']=='ASC')
{
echo'<img style="margin-right: 5px;" src="images/1uparrow.png"alt=""WIDTH=10 HEIGHT=10/><a href="tag.php?'.$tag.'='.$get.'&sort=timestamp&order=DESC">Date</a> | ';
}
elseif ($_GET['sort'] == 'timestamp' && $_GET['order']=='DESC')
{
echo'<img style="margin-right: 5px;" src="images/1downarrow.png"alt=""WIDTH=10 HEIGHT=10/><a href="tag.php?'.$tag.'='.$get.'&sort=timestamp&order=ASC">Date</a> | ';
}
else
{
echo'<a href="tag.php?'.$tag.'='.$get.'&sort=timestamp&order=DESC">Date</a> | ';
}


if ($_GET['sort'] == 'artist' && $_GET['order']=='ASC')
{
echo'<img style="margin-right: 5px;" src="images/1uparrow.png"alt=""WIDTH=10 HEIGHT=10/><a href="tag.php?'.$tag.'='.$get.'&sort=artist&order=DESC">Artist</a> | ';
}
elseif ($_GET['sort'] == 'artist' && $_GET['order']=='DESC')
{
echo'<img style="margin-right: 5px;" src="images/1downarrow.png"alt=""WIDTH=10 HEIGHT=10/><a href="tag.php?'.$tag.'='.$get.'&sort=artist&order=ASC">Artist</a> | ';
}
else
{
echo'<a href="tag.php?'.$tag.'='.$get.'&sort=artist&order=DESC">Artist</a> | ';
}
0

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

Posez votre question
doctorpower Messages postés 359 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 4 décembre 2011 68
18 juin 2009 à 16:09
MERCI !
ca fonctionne :)
0
nEm3sis Messages postés 710 Date d'inscription lundi 20 août 2007 Statut Membre Dernière intervention 9 avril 2012 113
18 juin 2009 à 16:12
cool
de rien =)

ps : pense a mettre le status en résolu
0