Et bien sur, vous vous en doutez je ne sais par quel bout commencer ..
<?php
$currentPage = $_SERVER["PHP_SELF"];
$colname_SousCat = "1";
if (isset($_GET['id'])) {
$colname_SousCat = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($Nom_bdd, $connection_base);
$query_SousCat = sprintf("SELECT * FROM table_sous_categories WHERE id = %s", $colname_SousCat);
$SousCat = mysql_query($query_SousCat, $connection_base) or die(mysql_error());
$row_SousCat = mysql_fetch_assoc($SousCat);
$totalRows_SousCat = mysql_num_rows($SousCat);
$idURL_Cat = "1";
if (isset($_GET['id'])) {
$idURL_Cat = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($Nom_bdd, $connection_base);
$query_Cat = sprintf("SELECT table_categories.intitule, table_categories.id FROM table_categories INNER JOIN table_sous_categories ON table_sous_categories.parent=table_categories.id WHERE table_sous_categories.id = %s", $idURL_Cat);
$Cat = mysql_query($query_Cat, $connection_base) or die(mysql_error());
$row_Cat = mysql_fetch_assoc($Cat);
$totalRows_Cat = mysql_num_rows($Cat);
$maxRows_articles = 5;
$pageNum_articles = 0;
if (isset($_GET['pageNum_articles'])) {
$pageNum_articles = $_GET['pageNum_articles'];
}
$startRow_articles = $pageNum_articles * $maxRows_articles;
$idURL_articles = "1";
if (isset($_GET['id'])) {
$idURL_articles = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
mysql_select_db($Nom_bdd, $connection_base);
// Ligne ci-dessous concernée pour remplacer prix_ttc par le résultat de la liste déroulante
$query_articles = sprintf("SELECT * FROM table_articles WHERE table_articles.categorie = %s or table_articles.sous_categorie = %s ORDER BY table_articles.prix_ttc", $idURL_articles,$idURL_articles);
$query_limit_articles = sprintf("%s LIMIT %d, %d", $query_articles, $startRow_articles, $maxRows_articles);
$articles = mysql_query($query_limit_articles, $connection_base) or die(mysql_error());
$row_articles = mysql_fetch_assoc($articles);
if (isset($_GET['totalRows_articles'])) {
$totalRows_articles = $_GET['totalRows_articles'];
} else {
$all_articles = mysql_query($query_articles);
$totalRows_articles = mysql_num_rows($all_articles);
}
$totalPages_articles = ceil($totalRows_articles/$maxRows_articles)-1;
$queryString_articles = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_articles") == false and
stristr($param, "totalRows_articles") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_articles = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_articles = sprintf("&totalRows_articles=%d%s", $totalRows_articles, $queryString_articles);
?>
Voici le formulaire avec lequel j’aimerais faire fonctionner la liste déroulante avec trois critères de sélection. <form action="" method="post" name="trier" id="trier">
<p style="text-align:center">
<select name="tri">
<option value="">Classer le catalogue par...</option>
<option value="prix_ttc">Article</option>
<option value="date_MEV">Date de vente</option>
<option value="type_article">Prix</option>
</select>
</p>
</form>
Comment dois-je procéder pour insérer le post tri dans la ligne suivante, à la place de prix_ttc :
$query_articles = sprintf("SELECT * FROM table_articles WHERE table_articles.categorie = %s or table_articles.sous_categorie = %s ORDER BY table_articles.prix_ttc", $idURL_articles,$idURL_articles);
Moi je pense à remplacer prix_ttc par $trier juste derrière ORDER BY table_articles.$trierAprès l’avoir déclaré comme ceci :
$trier = isset($_POST['tri']) ? $_POST['tri'] : '';
$trier = mysql_escape_string($_POST['tri']);
Mais je n’ai aucun résultat, si ce n’est une erreur…
Y a-t-il une âme charitable pour m’aider dans ma requête ?
Cordialement