PHP tableau tri des lignes
Bonjour,
à l'aide de ce tuto j'ai réussi à paginer mon tableau,
maintenant je cherche une solution pour trier les lignes du tableau
j'ai donc créé une variable $ColSel que j'ai inséré dans la fonction SQL
Malheureusement je ne trouve pas la solution pour modifier la valeur de $ColSel seulement lorsque je clique sur le <a href correspondant,
j'ai essayé en remplaçant $ColSel par $_SESSION['ColSel'] afin que la valeur soit conservée lors de la recharge de la page - est-ce à conserver?
mais comment modifier la valeur de $_SESSION['ColSel'] seulement lorsque je clique sur <a href correspondant? via AJAX? via un if(isset....?
si qqun pouvait m'aider svp
merci
Nota: j'ai trouvé un exemple (ci-dessus) avec __doPostBack mais je n'ai rien trouvé sur le net concernant cette fonction et ça ne fonctionne pas!
Code:
1 2
|
<a href="javascript:__doPostBack('ctl00$ctl00$cph$gv$ctl02$Activite_Poste&desc','')"><img src="images/order_down.png"/></a> |
code du tuto repris
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
<html>
<head>
<title>Exemple de pagination automatique sur un livre d or</title>
</head>
<body>
<?php
//Connexion à la base de données
mysql_connect('serveur', 'utilisateur', 'motdepasse');
mysql_select_db('basededonnees');
$messagesParPage=5; //Nous allons afficher 5 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM livredor'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
$ColSel = 'id ASC' -> ligne rajouter dans le tuto de base pour trier les lignes,
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
// La requête sql pour récupérer les messages de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM livredor ORDER BY '.$ColSel.' LIMIT '.$premiereEntree.', '.$messagesParPage.'');
while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
{
//Je vais afficher les messages dans des petits tableaux. C'est à vous d'adapter pour votre design...
//De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
echo '<table width="400" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><strong>Ecrit par : '.stripslashes($donnees_messages['pseudo']).'</strong></td>
</tr>
<tr>
<td>'.nl2br(stripslashes($donnees_messages['message'])).'</td>
</tr>
</table><br /><br />';
//J'ai rajouté des sauts à la ligne pour espacer les messages.
}
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="livredor.php?page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
?>
</body>
</html> |