[PHP] Plusieurs conditions avec $_GET

doctorpower Messages postés 360 Date d'inscription   Statut Membre Dernière intervention   -  
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

6 réponses

nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
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   Statut Membre Dernière intervention   113
 
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   Statut Membre Dernière intervention   1
 
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 360 Date d'inscription   Statut Membre Dernière intervention   68
 
@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 360 Date d'inscription   Statut Membre Dernière intervention   68
 
MERCI !
ca fonctionne :)
0
nEm3sis Messages postés 710 Date d'inscription   Statut Membre Dernière intervention   113
 
cool
de rien =)

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