[RESOLU] Aide pour un tri de tableau

Eléphanteau du PHP | 16 Messages

17 nov. 2016, 18:49

Bonjour,
Je tiens à m'excuser d'avance à ceux qui je pourrais vexer, en effet j'ai fais quelques recherches pour comment faire des tries de tableau en cliquant sur les libellés mais je reste confus.

J'ai dans mon code ceci:
<div class="row">
      <div class="col s1"></div>
      <div class="col s1 card-panel teal lighten-2">Nom de shop</div>
<!--       <div class="col s1 card-panel teal lighten-2">Prénom</div>
      <div class="col s1 card-panel teal lighten-2">Nom</div> -->
      <div class="col s1 card-panel teal lighten-2">Téléphone</div>
      <div class="col s3 card-panel teal lighten-2">Email</div>
      <div class="col s1 card-panel teal lighten-2">Ville</div>
      <div class="col s1 card-panel teal lighten-2">CP</div>
      <div class="col s1 card-panel teal lighten-2">Statut</div>
      <div class="col s1 card-panel teal lighten-2">Vendeur</div>
	</div>
	<?php
  include('connectbdd.php');
	// $connection = mysqli_connect("*******.mysql.db", "**********", "*******","*******");
	$query = "select * from client ";
  $decode = mysqli_query($_SESSION['connect'],"SET NAMES utf8");
  $result = mysqli_query($_SESSION['connect'], $query);
  while ($data = mysqli_fetch_array($result)){
    echo "<div class='row'>";
    echo "<div class='col s1'></div>";
    echo "<div class='col s1'>".$data['nom_shop']."</div>";
    // echo "<div class='col s1'>".$data['prenom']."</div>";
    // echo "<div class='col s1'>".$data['nom']."</div>";
    echo "<div class='col s1'>".$data['tel']."</div>";
    echo "<div class='col s3'>".$data['mail']."</div>";
    echo "<div class='col s1'>".$data['ville']."</div>";
    echo "<div class='col s1'>".$data['cp']."</div>";
    switch ($data['statut']) {
    case 0:
        echo "<div class='col s1'>Pas de statut</div>";
        break;  
    case 1:
        echo "<div class='red-text col s1'>Pas intéressé</div>";
        break;
    case 2:
        echo "<div class='yellow-text col s1'>Peu intéressé</div>";
        break;
    case 3:
        echo "<div class='blue-text col s1'>intéressé</div>";
        break;
    case 4:
        echo "<div class='green-text col s1'>Très intéressé</div>";
        break;
}
    echo "<div class='col s1'>".$data['vendeur']."</div>";
    echo "<div class='col s1'>
         <a class='waves-effect waves-light btn red' href='detail.php?Id=$data[id_client]'>détails</a>
          </div>";
    // echo "<div class='col s1'>
    //      <a class='waves-effect waves-light btn'></a>
    //       </div>";
    echo "</div>";
          ;
  }
  mysqli_free_result ($result);
et en image http://imgur.com/a/E3S9I

Mammouth du PHP | 2703 Messages

17 nov. 2016, 20:41

il y a moyen de le faire en php, mais c'est plus efficace selon moi de le faire avec https://datatables.net/
à noter que des données présentées sous forme de tableaux doivent l'être dans des balises <table> et </table> et non des div.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

18 nov. 2016, 13:33

Bonjour,

Pour trier ton tableau lors de sa génération, il suffit simplement d'utiliser une clause ORDER BY dans ta requête SQL. Tu peux ainsi définir dynamiquement les critères de tri à utiliser.
La solution javascript côté utilisateur après génération est également souvent appréciable pour des tableaux n'ayant pas un nombre d'enregistrements trop important.

En revanche, je rejoins la remarque de or1, si pendant longtemps les tableaux html étaient décriés parce que leur usage étaient détournés afin de faire de la mise en page de site plutôt que de data, leur abandon pur et simple relève de l’extrémisme. Il convient seulement de les utiliser à bon escient, en l'occurrence lorsque l'on a besoin d'afficher des tableaux de données (et de bricoler un peu le css pour avoir des affichages responsive si nécessaire) :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 16 Messages

21 nov. 2016, 13:06

Ok merci je vais essayer avec datatable, jqxgrid.