[resolu]Entêtes de tableau triables

Eléphanteau du PHP | 10 Messages

06 oct. 2010, 23:03

Bonsoir à tous,

j'ai créé un tableau qui appelle mes données à partir de ma base MySQL via Dreamweaver.
J'ai ensuite voulu ajouter un système de pagination qui me permet d'afficher mes résultats sur plusieurs pages.
Finalement je voudrais pouvoir trier ces données, or c'est ici que ça coince. EN effet avec le système de pagination, dès que je change de page le tri reprend sa forme initiale.
Je sais pas si je suis clair... bref voici les codes ce sera certainement plus simple:

Voici le système de pagination :
<?php
if( isset($_GET['page']) && is_numeric($_GET['page']) )  

    $page = $_GET['page'];  

else 

    $page = 1; 

$pagination = 15;  
$limit_start = ($page - 1) * $pagination;  
?>
<?php
mysql_select_db(*******);
$query_Recordset1 = "SELECT id, nom2, recommande, ville, cp, cuisine, prix, note FROM form1 ORDER BY $order LIMIT $limit_start, $pagination ";
$Recordset1 = mysql_query($query_Recordset1, $Dedette) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM form1');  
$nb_total = mysql_fetch_array($nb_total);  
$nb_total = $nb_total['nb_total']; 
?>
Et voici le petit code que j'ai ajouté pour trier mes entêtes dans mon tableau :
$order="id";
if (isset($_GET['order'])){
$order=$_GET['order'];
}
ENfin voici comment j'affiche mes entêtes :
                    <td class="texte4"><a href="<?php print $_SERVER['PHP_SELF']."?order=nom2"; ?>">Nom</a></td>
                    <td class="texte4"><a href="<?php print $_SERVER['PHP_SELF']."?order=recommande"; ?>">Catégorie</a></td>
etc...
Ce code fonctionne mais dès que je change de page (via les pages crées par le système de pagination), le tri n'est plus bon.

Merci d'avance pour votre aide,

Alex
Modifié en dernier par xilil le 07 oct. 2010, 17:10, modifié 1 fois.

Mammouth du PHP | 568 Messages

07 oct. 2010, 13:37

J'imagine que tu ne passe pas le "order by" dans ton lien de pagination.

Eléphanteau du PHP | 10 Messages

07 oct. 2010, 16:32

Non effectivement voici comment se crée le lien de pagination :
<?php 
$nb_pages = ceil($nb_total / $pagination);  
echo '<p>[ Page :';  
for ($i = 1 ; $i <= $nb_pages ; $i++) {  
 if ($i == $page )  
echo " $i";  
else 
echo " <a href=\"?page=$i\" class=\"lien4\">$i</a> ";  
}  
echo ' ]</p>'; 
?>
du coup e fais comment pour indiquer dans le lien le order by ? quelqu'un a une piste ?

Merci

Eléphanteau du PHP | 10 Messages

07 oct. 2010, 17:09

j'ai trouvé tout seul, merci pour votre aide, pour ceux que ça intéresse j'ai modifié mon lien de pagination comme suit :
<?php 
$nb_pages = ceil($nb_total / $pagination);  
echo '<p>[ Page :';  
for ($i = 1 ; $i <= $nb_pages ; $i++) {  
 if ($i == $page )  
 echo " <span class=\"lien3\">$i</span>";  
else 
echo " <a href=\"?page=$i&order=$order\" class=\"lien4\">$i</a> ";  
}  
echo ' ]</p>'; 
									?>