Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tri modifiable par l'utilisateur

dans un array

Sujet résolu
    30 novembre 2005 à 1:42:27

    J'ai écrit un affichage de tableau ou l'utilisateur peut choisir comment classer les données.

    Pour l'instant s'il clique sur Titre, le tableau va se trier par titre de façon decroissante et j'aimerais que si l'utilisateur click une fois sur le lien, le tableau se trie de façon croissante, et s'il clique une 2eme fois sur le lien il se trie de façon décroissante et ainsi de suite.

    Quelqu'un aurait un script qui le permet ?

    Citation : Mon code source :


    <th width="33"><a href="index.php?class=id_index">Id</a></th>
    <th width="349"><a href="index.php?class=titre">Titre</a></th>
    <th width="52"><a href="index.php?class=v1">Version</a></th>
    <th width="76">&nbsp;</th>
    <th width="33">&nbsp;</th>
    </tr>


    <?php

    //-----------------------------------------------------
    // Index requete + ordre
    //-----------------------------------------------------
    switch ($class)
    {
    case id_index:$retour = mysql_query('SELECT * FROM `index` ORDER BY id_index DESC');
    break;

    case titre:$retour = mysql_query('SELECT * FROM `index` ORDER BY titre DESC');
    break;

    case v1:$retour = mysql_query('SELECT * FROM `index` ORDER BY v1 DESC');
    break;

    default:$retour = mysql_query('SELECT * FROM `index` ORDER BY id_index DESC');
    }
    ?>

    <?php
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>
    <tr>
    <td><?php echo stripslashes($donnees['id_index']); ?></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo stripslashes($donnees['v2']); ?><?php echo stripslashes($donnees['v1']); ?></td>
    <td><?php echo '<a href="post_index.php?modifier_index=' . $donnees['id_index'] . '">'; ?><img src="images/icon_edit.gif" border="0" /></td>
    <td><?php echo '<a href="index.php?supprimer_index=' . $donnees['id_index'] . '">'; ?><img src="images/icon_delete.gif" width="16" height="18" border="0" /></td>

    </tr>

    <?php
    }
    ?>

    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2005 à 2:15:02

      comme ça, tout de suite, une idée me vient :


      // pour la requête SQL
      if ($_GET['ordre'] % 2 == 0) { $ordre = " DESC"; } else { $ordre = " ASC"; }
      mysql_query("SELECT * FROM `tableau` ORDER BY " . $_GET['tri'] . $ordre);


      // et plus loin, pour les petites flèches sur le tableau, pou trier !
      $ordreSuivant = $_GET['ordre']++;
      echo '<a href="?tri=colonne1&ordre=' . $ordreSuivant . '">Colonne 1</a>';


      il manque bien évidemment les vérifications de base, et quelques autres trucs !

      tu vois ou pas ? :)
      • Partager sur Facebook
      • Partager sur Twitter
        30 novembre 2005 à 2:43:40

        Ok merci oui je vois l'idée.

        étant donner que je suis parfaitement néophite, j'utilise php depuis moins d'une semaine j'ai du mal a distinguer les erreurs ... mais comme suite a ton script et suite a de nombreux essait pour metre une variable pour le champ apres ORDER BY.
        J'en déduit que cette syntaxe n'est pas correcte. :( et que jvais m'amuser avec les conditions :p


        mysql_query("SELECT * FROM `index` ORDER BY " . $_GET['tri'] . $ordre);

        • Partager sur Facebook
        • Partager sur Twitter

        Tri modifiable par l'utilisateur

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown