reclassement des résultats

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 : reclassement des résultats

par le_luke » 08 mars 2006, 13:05

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

par zeus » 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]

par Truc » 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:

reclassement des résultats

par le_luke » 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);
?>