bonjour,
Je vous écris car j'ai grand besoin de votre aide pour un problème qui m'obsède et pour lequel je ne trouve pas de solutions =(
Aussi je vous remerci d'avance pour toute l'aide que vous pourrez m'apporter , c'est un projet qui me tient a coeur et ca me tue de pas pouvoir avancer dessus
Pour vous expliquer clairement mon probleme j'ai une page dédiée au tv.
sur cette page j'ai un premier formulaire en POST avec des menus deroulants qui me permet de faire un premier tri par marque, taille,resolution etc ...
jusquici tout fonctionne parfaitement.
Mais voila , une fois mon premier niveau de rechercher effectué, j'aurais aimé conserver ce premier niveau de recherche pour faire ensuite un deuxième tris par prix, marque, et avis... (à partir du resultat de la premiere requete)
j'ai donc cree 3 boutons qui envoie en GET le choix de l'internaute quand à son choix de tris secondaire
Tout sélectionner
<div id='tris'><a href="/?order=marque"> </a><a href="/?order=avis"> </a><a href="/?order=prix"> </a></div>
Or j'ai beau faire, une fois que j'effectue une premiere selection (ex rechercher une tv de la marque lG), pas moyen de cumuler ce resultat avec un dernier filtre de tri par marque , avis , ou prix =((
Pour vous aider à y voir claire je vous ai mis en pièce jointe mon code
Tout sélectionner
#*********************************************************************************
# FILTRE DE TRI DU SECOND NIVEAU
#*********************************************************************************
$listTri= array ('marque','avis','prix');
$aList = array();
foreach ($listTri as $selectTri) {
if (isset($_GET['order'])&& ($_GET['order'] == $selectTri)) {
$aList[] = $selectTri ;
}
}
if(count($aList) > 0) {
$sWhereList = 'ORDER BY `'.implode($aList).'` ASC';
$tri=1;
}
#*********************************************************************************
# FILTRE DE TRI DU PREMIER NIVEAU AVEC LES MENUS DEROULANT
#*********************************************************************************
if ($flag == 1) {
$aCols = array('frequence','marque','technologie','taille','resolution','ports');
// Tableau de stockage des conditions de tri
$aWhere = array();
// Chaine de la clause WHERE de la requête.
$sWhere = null;
foreach ($aCols as $col) {
if (isset($_POST[$col]) && ($_POST[$col] != $col)) {
$aWhere[] = " `". $col ."` = '". $_POST[$col] ."' ";
}
}
if(count($aWhere) > 0) {
$sWhere = ' WHERE '. implode(' AND ', $aWhere);
}
//C'est la que mon filtre de second niveau ne se cumule pas =( car une fois que je valide le formulaire de premier niveau (Ppour faire une recherche par marque elle semble disparaitre)
$sql = "SELECT * FROM `tv`". $sWhere."GROUP BY `modele` ".$sWhereList;
} else {//si flag !=1
$sql= "SELECT * FROM `tv` GROUP BY `modele`".$sWhereList;
}
if($sql) {
$afficheProduct = mysql_query($sql) or die("Erreur lors de la requête SQL
\nRequête : <pre>". $sql ."</pre>\nCode d'erreur : ". mysql_errno() ."
\nMessage : ". mysql_error());
while ($donneesTV = mysql_fetch_array($afficheProduct)) {
//et la j'affiche mes tvs
}
}
je suis complètement desespéré je ne vois pas pourquoi cela ne marche pas =(((
svp aidez moi
Partager