Rechercher : dans
Par :

[PHP] tri des colonnes d'un tableau

Dernière réponse le 9 nov 2007 à 09:34:43 cemf, le 8 nov 2007 à 11:48:41 
 Signaler ce message aux modérateurs

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);
?>

Configuration: Mac OS X
Safari 419.3
Dreamweaver  8

Meilleures réponses pour « [PHP] tri des colonnes d'un tableau » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
LaTeX - Gestion des tableaux VoirCréation de tableaux Les tableaux permettent une meilleure structuration du document, ce qui rend le document plus compréhensible et plus lisible. LaTeX fournit un environement pour créer des tableaux de façon simple : tabular. Un tableau se...

1

cemf, le 8 nov 2007 à 18:34:34

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

Répondre à cemf

2

Alain42, le 8 nov 2007 à 19:06:03

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/...

Répondre à Alain42

3

 cemf, le 9 nov 2007 à 09:34:43

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

Répondre à cemf