j'ai réalisé (enfin essayé) une page qui affiche des produits (9 par page) et qui calcule le nombre de produit total dans la BDD pour générer le nombre de pages nécessaires pour tous les afficher. jusque la pas de soucis mais j'ai également voulu réaliser un formulaire afin que le visiteur puisse trier les produits soit par défaut (nom) soit par prix (en haut du code).
Sur Easyphp en local pas de soucis tout fonctionne, lorsque l'on valide les produits se trient et lorsque l'on change de page restent triés. Seulement, une fois mis ce script sur le net, il n'y a plus rien qui marche (c'est exactement le même que celui en local exception faite des codes pour se loguer à la BDD qui sont justes.)
Je ne suis qu'un débutant en PHP donc j'avoue me sentir largué par ce problème

(je pense qu'il peut s'agir d'un problème de norme PHP mais je sais pas où

)
Voila en espérant avoir été clair sur ce qui bug
(le tri). Merci d'avance !

<code type="php">
<div class="liste_sac_selection">
<?phpecho('<form action="index.php?page=liste_produit&num_page='.
$_GET['num_page'].
'" method="post">') ;?> afficher par :
<select name="affichage">
<option value="id_produit">défaut</option>
<option value="prix">prix</option>
</select>
<input type="submit" value="valider" class="button"/>
</form>
</div>
<?php
//on recup le mode d'affichage (ordre) si il existe (sinon, on fait par id_produit)
if(isset($_POST['affichage']) ==
FALSE &&
(isset($_GET['affichage']) ==
FALSE)) {
$affichage = "id_produit" ;
}
elseif(isset($_POST['affichage'])) {$affichage = $_POST['affichage'];}
else
{$affichage = $_GET['affichage'];}
//on recup les éventuels ordre par matiere ou le prix minimum (pour les pages > 1)
if((isset($_GET['matiere']) ==
FALSE) ||
(empty($_GET['matiere']))) {
$where = "";
$_GET['matiere'] = "";//on crée la variable si elle n'existe pas
}
else
{$where = (' WHERE `matiere`="'. $_GET['matiere'].'"') ;}
// CALCUL DU NOMBRE DE PAGE //
$req_ligne =
mysql_query('SELECT * FROM produit'.
$where.
';');
$nb_page = $nbr_produit / 9 ;
if(($nbr_produit % 9) != 0)
{$nb_page = $nb_page + 1 ;}
$nbpr = (($_GET['num_page'] - 1) *9);
$nbpr_fin = $nbpr + 9;
$num_page = $_GET['num_page'];
// On récupère les produit
$retour =
mysql_query('SELECT * FROM produit'.
$where .
' ORDER BY "'.
$affichage.
'" ASC LIMIT '.
$nbpr.
' , '.
$nbpr_fin.
';');
$id=1;
$produits_restants=$nbr_produit;
for($i=1 ; $i<=3 ; $i++)// les lignes
{
//echo($tableau[$id]["modele"]);
for($j=1 ; $j<=3 ; $j++)// les colonnes
{
if($produits_restants >= 1)
{
$nb_produits_mis = 0;
while($nb_produits_mis < 1)
{
if(isset($donnees["nom_produit"])) {
$id = $donnees['id_produit'];
$nom_produit = $donnees["nom_produit"];
$prix = $donnees["prix"];
$image1 = $donnees["image1"];
//echo('produit restant : '.$produits_restants);
echo('<td class="visible">');
echo('<a href="index.php?page=selection_produit&id='.
$id.
'&num_page='.
$num_page.
'&matiere='.
$_GET['matiere'].
'"><img src="image/sac/'.
$image1.
'" alt="image sac" class="image_liste_produit"/></a>');
echo('<table class="prix_produit"> <tr><td align="right">'.
$prix.
' €</td></tr></table>');
echo('<table class="modele_produit"> <tr><td align="center">'.
$nom_produit.
'</td></tr></table>');
$produits_restants =$produits_restants-1;
$nb_produits_mis ++;
}
else
{$nb_produits_mis ++;}
}//finwhile
}
}
//$j=4;
}// fin du for
?>
</table>
<center>
<div class="liste_sac_page"> Page
<?phpfor($k = 1 ; $k<= $nb_page ; $k++)
{echo('<a href="index.php?page=liste_produit&num_page='.
$k.
'&affichage='.
$affichage.
'">'.
$k.
'</a>-');
} ?>
</div></center>
</code>