Vous n'êtes pas identifié(e).
Bonjour
Dans un tableau HTML j'affiche actuellement les images présentes dans un répertoire "accueil".
Je voudrais afficher ces mêmes images (au même endroit) mais dans un ordre différent.
Actuellement elles sont affichées par ordre alphabétique et je voudrais les afficher en les triant par la date de modification.
En vous remerciant par avance.
<tr>
<td rowspan="3">
<?php
$dirName = './img/Accueil';
$files = scandir($dirName);
foreach ($files as $file)
{
if ($file != '.' && $file != '..')
{
if(is_file($dirName.'/'.$file))
{
$nb_fichier++;
?>
<img style="z-index:0; width: 300px;" src="<?php echo $dirName.'/'.$file; ?>" >
<?php
}
}
}
?>
</td>
</tr>
Hors ligne
Bonjour,
Si le nombre de lignes est important, je vous recommande de faire ce tri directement au niveau de votre requête SQL en amont.
Sinon, il faut idéalement que vos date soient chargées telles qu'elles sont stockées sur votre SGBDR c'est à dire au format "YYYY-MM-DD hh:mm:ss" ce qui va vous permettre de reclasser votre tableau de données au niveau de PHP sur cette colonne par un simple classement alphabétique ou alphabétique inverse pour obtenir le résultat désiré.
Bon week-end.
Dernière modification par Jc (23-01-2016 12:52:17)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour et merci pour la réponse.
En fait j'ai trouvé la solution.
Je vous fournis le script au cas ou cela puisse servir à d'autres.
<tr valign="top">
<td style="vertical-align: top;">
<?php
/*
Principe de ce petit script :
On charge dans un tableau les noms de fichiers présent dans le répertoire d'image
mais en les prefixant par leur date de modification (avec un séparateur "@")
On trie ensuite ce tableau en ordre descendant afin de bénéficier des images les plus récentes
en premier.
Ensuite on dépile ce même tableau trié, mais en découpant la variable(date+nom de fichier) afin de ne
conserver que le nom de fichier.
On peut ainsi afficher via la balise <img> l'image en question en bouclant sur la table.
*/
$arr = array();
$folder = './img/Membres/';
$fichier = scandir($folder);
$i++;
foreach ($fichier as $key => $value)
{
if ($value != '.' && $value != '..')
{
$chemcomplet = $folder.$value;
$dat = date("YmdHis", filemtime($chemcomplet));
$arr[$i] = $dat."@".$value;
$i++;
}
}
arsort($arr);
/* print_r($arr); */
foreach ($arr as $nomfichier)
{
if ($nomfichier != '.' && $nomfichier != '..')
{
$findme = "@";
$pos = strpos($nomfichier, $findme);
$rest = substr($nomfichier, $pos+1);
?>
<img style="z-index:0; width: 300px;" src="<?php echo $folder.'/'.$rest?>" ><?php
}
}
?>
</td>
Hors ligne