[PHP] tri des colonnes d'un tableau

Résolu/Fermé
cemf - 8 nov. 2007 à 11:48
 nounou85 - 10 juin 2011 à 16:16
Bonjour,

voila, j'ai créé ma première page PHP avec base de donnée derriere.
Cela m'affiche un tableau avec 10 colonnes.

je voudrais, en cliquant sur le titre de chaque colonne, que cela trie la liste en fonction de cette colonne
(ex. je clique sur TITLE et cela me trie toutes les données du tableau en fonction de TITLE)

La seule astuce que j'ai trouvée, c'est de créer une page par colonne en changeant ceci:
(par exemple pour la page triée par la colonne title :
$query_Recordset1 = "SELECT code, title, `time`, album, style, master, publishing, composer, destination, territories, audio FROM item ORDER BY title"; )
Et je fais un lien sur TITLE en haut de la colonne qui renvoie vers cette page. Mais au final j'aurai 10 pages…

C'est super lourd. Donc je cherche à mettre sur chaque titre de colonne un lien qui me rafraichi la page en affichant les infos triées en fonction de la requête.
par ex : http://index.php?ORDER BY title
Mais cela ne fonctionne pas…

J'espère que quelqu'un pourra m'aider.
Voici le code de ma page principale:




<?php require_once('Connections/contenu.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_contenu, $contenu);
$query_Recordset1 = "SELECT code, title, `time`, album, style, master, publishing, composer, destination, territories, audio FROM item ORDER BY title";
$Recordset1 = mysql_query($query_Recordset1, $contenu) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?><html>
<head>
<title>Document sans nom</title>
<link href="class.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
</head>
<body>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="top"><table width="90%" height="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="1" bgcolor="#000000"><img src="images/espaceur.gif" width="1" height="1"></td>
<td align="center" valign="top">


<a href="recherche.php">RECHERCHE</a><br>
<br>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="25" align="center" bgcolor="#000066" class="titre">CODE</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre"><img src="images/espaceur.gif" alt=" " width="3" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">TITLE</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">TIME</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre"><img src="images/espaceur.gif" alt=" " width="3" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">ALBUM</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">STYLE</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">MASTER</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">PUBLISHING</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">COMPOSER</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">DESTINATION</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
<td align="center" bgcolor="#000066" class="titre">TERRITORIES</td>
<td width="1" align="center" bgcolor="#000066"><img src="images/espaceur.gif" alt=" " width="1" height="1"></td>
</tr>
<tr>
<td height="10"><span class="texte"><img src="images/espaceur.gif" width="10" height="10"></span></td>
<td bgcolor="#CCCCCC"></td>
<td></td>
<td></td>
<td bgcolor="#CCCCCC"></td>
<td></td>
<td bgcolor="#CCCCCC"></td>
<td></td>
<td></td>
<td bgcolor="#CCCCCC"></td>
<td align="center"></td>
<td align="center" bgcolor="#CCCCCC"></td>
<td align="center"></td>
<td align="center" bgcolor="#CCCCCC"></td>
<td align="center"></td>
<td bgcolor="#CCCCCC"></td>
<td align="center"></td>
<td align="center" bgcolor="#CCCCCC"></td>
<td align="center"></td>
<td align="center" bgcolor="#CCCCCC"></td>
<td align="center"></td>
<td align="center" bgcolor="#CCCCCC"></td>
</tr>
<?php do { ?><tr>

<td height="20" align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['code']; ?></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td bgcolor="#F3F3F3" class="texte"></td>
<td bgcolor="#F3F3F3" class="texte"><strong><?php echo $row_Recordset1['title']; ?></strong></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['time']; ?></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td bgcolor="#F3F3F3" class="texte"></td>
<td bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['album']; ?></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['style']; ?></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['master']; ?></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['publishing']; ?></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['composer']; ?></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['destination']; ?></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" bgcolor="#F3F3F3" class="texte"><?php echo $row_Recordset1['territories']; ?></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
</tr>
<tr>
<td height="10" align="center" class="texte"><img src="images/espaceur.gif" alt=" " width="10" height="10"></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td class="texte"></td>
<td class="texte"></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td class="texte"></td>
<td class="texte"></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
<td align="center" class="texte"></td>
<td align="center" bgcolor="#CCCCCC" class="texte"></td>
</tr><?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
<br>
<br>
<br>
<br></td>
<td width="1" bgcolor="#000000"><img src="images/espaceur.gif" width="1" height="1"></td>
</tr>
</table></td>
</tr>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

4 réponses

Bonjour,

Personne ne peux m'aider?

S'il vous plait…
Je suis desespéré. Je ne trouve vraiment pas la solution...

Merci d'avance à tous
0
Bonsoir,

Une petite recherche sur Google et voilà une page qui traite de cela, en javascript:

http://www.asp-php.net/scripts/scripting/array_sort.php

il y a aussi celui en php:

http://www.asp-php.fr/forums/viewtopic.php?t=1826&view=next&sid=fedfc31a87a93ba14f0872c5aea9124a
0
Merci beaucoup,

J'ai en fait pris la solution javascript qui marche très bien.
Car celle en PHP, je ne savais pas quel code je devais changer…

Merci encore
0
bonjour, j'ai exactement le meme probleme que toi , mais comme je suis debutante en javascript donc je n'arrive pas à trier mon tableau, stp est ce que tu peux me faire voire ton code. merci d'avance
0