afficher un tableau avec trie par colonne 2

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher un tableau avec trie par colonne 2

par orgerix » 10 nov. 2007, 10:54

SInon, tu as toujours la fonction usort() qui te permet un tri personnaliser d'un tableau.

par Bibbe » 10 nov. 2007, 03:38

merci :D

par Ryle » 08 nov. 2007, 10:57

Pour trier les résultats d'une requête, il te suffit d'utiliser l'instruction "ORDER BY" et le nom du ou des champs, avec éventuellement la mention ASC (par défaut) ou DESC pour préciser le sens :

Code : Tout sélectionner

SELECT ... ORDER BY champ1, champ2 DESC
Cette requête va trier les résultats selon le champ1 de manière croissante, puis pour les doublons dans le champ1, par champ2 de manière décroissante.

Il te faut donc compléter ta requête avec la clause ORDER BY pour trier les résultat (avec par défaut pourquoi pas un tri sur l'id) puis mettre un lien vers ta page sur tes entêtes de tableau et passer un paramètre qui indiquera sur quelle colonne faire le tri (et optionnellement dans quel sens :))

par zeus » 08 nov. 2007, 09:11

Modération :
Bibbe, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

afficher un tableau avec trie par colonne 2

par Bibbe » 08 nov. 2007, 04:25

Bonjour,

Voila, j'ai un tout petit problème de rien du tout.
j'ai beau chercher sur les forums, et je ne trouve pas de réponse à mon problème.

j'ai un petit tableau (http://84.101.228.160/consultation.php) tout simple qui se créer tout seul par un php.

le tableau va gentiment chercher les valeurs stockées dans en base de données et me les affiche par ordre d'entrée.

jusque la tout va.

maintenant j'aimerai cliquer sur mon entête de colonne pour afficher les données par ordre croissant. en plus claire, j'ai 3 colonnes, nom premon et cp.
j'aimerai cliquer sur "nom" pour tier les données par ordre croissant selon les noms
la même chose avec "prenom" et "cp".

mon code php actuel est :
<?php virtual('/Connections/root.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_root, $root);
$query_Recordset1 = "SELECT * FROM nom";
$Recordset1 = mysql_query($query_Recordset1, $root) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>repertoire</title>
</head>

<body>
<table width="52%" height="46" border="1">
  <tr>
    <td width="32%" nowrap="nowrap" height="21" class="TitleColor">nom</td>
    <td width="12%" nowrap="nowrap" class="TitleColor">prenom</td>
    <td width="56%" nowrap="nowrap" class="TitleColor">cp</td>
  </tr>
  <?php do { ?>
  <tr>
    <td nowrap="nowrap" class="ListTitleColor"><?php echo $row_Recordset1['nom']; ?></td>
    <td nowrap="nowrap" class="ListTitleColor"><?php echo $row_Recordset1['prenom']; ?></td>
    <td nowrap="nowrap" class="ListTitleColor"><?php echo $row_Recordset1['cp']; ?></td>
    </tr>
  <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>

comment faire

merci de répondre en langage de non-geek
y4 p4s qu3 d3s G33K sur t3rr3 :D