reclassement des résultats

Petit nouveau ! | 2 Messages

08 mars 2006, 12:14

Bonjour,

Je voudrais savoir comment faire pour relcasser les résultats obtenus après un QUERY....

De base le classement se fait par id mais je voudrais que quand on click sur "titre", le classement change par titre et plus par id.

Seulement voilà, évidemment ca ne marche pas....(le re-classement ne se fait pas)

voilà mon script:
<?php
$default_sort = 'id';
$allowed_order = array ('id','titre','realisateur','genre');
$order = $default_sort;

mysql_select_db($database_dvdtheque, $dvdtheque);
$query_dvdtheque = "SELECT * FROM dvdtheque ORDER BY $order ASC";
$dvdtheque = mysql_query($query_dvdtheque, $dvdtheque) or die(mysql_error());
$row_dvdtheque = mysql_fetch_assoc($dvdtheque);
$totalRows_dvdtheque = mysql_num_rows($dvdtheque);

?><!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=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>

<p>&nbsp;</p>
<table width="813" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td bgcolor="#CCCCCC"><a href="consult.php?order=titre">titre</a></td>
    <td bgcolor="#CCCCCC"><a href="consult.php?order=real">realisateur</a></td>
    <td bgcolor="#CCCCCC"><a href="consult.php?order=genre">genre</a></td>
  </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $row_dvdtheque['titre']; ?></td>
      <td><?php echo $row_dvdtheque['realisateur']; ?></td>
      <td><?php echo $row_dvdtheque['genre']; ?></td>
    </tr>
    <?php } while ($row_dvdtheque = mysql_fetch_assoc($dvdtheque)); ?>
</table>
</body>
</html>
<?php
mysql_free_result($dvdtheque);
?>

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

08 mars 2006, 12:37

Salut,
Tu ne récupère jamais le tri qui doit être effectué après le clic sur un des liens (titre, real, ...).

<!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=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?
$order = (isset($_GET['order'])) ? $_GET['order'] : " id "; // récupération du tri grace à l'opérateur ternaire

if (in_array($order,$allowed_order) // verification de la valeur récupérée, évite de taper n'importe quoi dans l'url
{
   mysql_select_db($database_dvdtheque, $dvdtheque);
   $query_dvdtheque = "SELECT * FROM dvdtheque ORDER BY $order ASC";
   $dvdtheque = mysql_query($query_dvdtheque, $dvdtheque) or die(mysql_error());
   $row_dvdtheque = mysql_fetch_assoc($dvdtheque);
   $totalRows_dvdtheque = mysql_num_rows($dvdtheque);
?>
   <p>&nbsp;</p>
   <table width="813" border="0" cellpadding="0" cellspacing="0">
     <tr>
       <td bgcolor="#CCCCCC"><a href="consult.php?order=titre">titre</a></td>
       <td bgcolor="#CCCCCC"><a href="consult.php?order=real">realisateur</a></td>
       <td bgcolor="#CCCCCC"><a href="consult.php?order=genre">genre</a></td>
     </tr>
   <?php do 
   { ?>
     <tr>
       <td><?php echo $row_dvdtheque['titre']; ?></td>
       <td><?php echo $row_dvdtheque['realisateur']; ?></td>
       <td><?php echo $row_dvdtheque['genre']; ?></td>
     </tr>
   <?php 
   } 
   while ($row_dvdtheque = mysql_fetch_assoc($dvdtheque)); ?>
   </table>
   
   <?php
   mysql_free_result($dvdtheque);
?>
}
else
{
 ?>
Tri non autorisé !!!
<?
}
?>
</body>
   </html>
la doc pour in_array() et pour l'opérateur ternaire
n'oublis pas d'utiliser les balises [ php] pour une coloration du code (tu peux même éditer ton post) :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

08 mars 2006, 12:54

modération : le_luke, dans un soucis de clarté et de lisibilité, je te demanderais de bien penser à mettre les balises
 ou [code] autour du code que tu postes.

Je l'ai modifié pour toi dans ton message mais pense-y la prochaine fois ;)

Merci d'avance[/color][/b]
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Petit nouveau ! | 2 Messages

08 mars 2006, 13:05

OK, désolé :oops: je note pour la prochaine fois, merci