8721 sujets

Développement web côté serveur, CMS

Bonjour,

j'ai un petit soucis avec un tableau. Habituellement, quand je veux afficher mes données, je passe par une boucle while. Mais cette fois, je veux faire un tri par nom.

Voici un exemple :


upload/34637-tri1.png Ca c'est la BDD

Et voici l'affichage que je souhaite

upload/34637-tri2.png

J'ai beau cherché sur internet. Je ne trouve rien qui correponde à ce que je veux faire. Quelqu'un peut il me mettre sur la voie ?

Merci beaucoup !
Modérateur
Bonjour,

" Tout problème comporte une solution. "

Oui, encore faut-il cerner le problème. Dans ton cas, rien ne semble impossible, toutefois je suis au regret de t'informer que ma boule de cristal est en panne (renvoi 404 à toute question posée, le SAV ne comprend pas la panne).

Comment est généré ton tableau ?

Pour appliquer un tri dans un tableau (array) en Php il existe les fonctions sort().

Le tout pour toi serait d'appliquer l'une de ces fonctions sur les données que tu récupère de ta Bdd (ta fameuse boucle while).
D'abord un tri sur la colonne 1, éclater la table : faire un array par ouvrier puis trier par date d'intervention par exemple.


Bref, du code, du code, du code, donnes-nous du code !
Pour l'instant mon code c'est ça


mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");


$sql="SELECT *  FROM garage ORDER by date DESC ";

$result=mysql_query($sql);





puis le tableau



<?php

while($rows=mysql_fetch_array($result)){

$rows['date']= implode('-',array_reverse  (explode('-',$rows['date'])));

?>

<div>
<ul>
<li>Nom</li>
<li>Modèle</li>
<li>Date</li>
<li>Travaux effectués</li>
</ul>
</div>
<div>
<div>
<ul>
<li><? echo $rows['nom']; ?></li>
<li><? echo $rows['modele']; ?></li>
<li><? echo $rows['date']; ?></li>
<li><? echo $rows['travaux']; ?></li>
</ul>
</div>

<?php
}
?>


Sauf que ça me fait un tableau chronologique, la date la plus récente en haut.
Modifié par daggoon (27 May 2016 - 13:59)
Bonjour,

Tu peux faire la requête comme ça

SELECT * FROM `garage` order by `Nom`,`date` ASC


tu auras :

upload/62060-imgbdd.PNG

Ensuite, il faut un peu travailler l'affichage.