Page 1 sur 1

Classer par mois et année ...

Posté : 03 janv. 2006, 15:34
par i974
Bonjour, je souhaiterai avoir quelques indications ou solutions :)

alors dans ma base, j'ai inserer des chemin pour des photos, avec la date d'insertion en format DATEHEURE.

Je les affiche par ordre du plus recent au plus ancien.

Cependant, il commence a y avoir beaucoup de photos, et je souhaiterai faire en sorte de les classer par années, et puis ensuite pour chaque année, pouvoir les classer par mois...

Je ne sais pas vraiment comment m'y prendre,
si quelqu'un pouvait m'orienter, ce serait vraiment sympa ;)

Merci et... BONNE ANNEE :lol:

Posté : 03 janv. 2006, 17:13
par sadeq
La requête SQL suivante classe tes images par année et par mois :

Code : Tout sélectionner

SELECT date_image, chemin_image FROM images ORDER BY year(date_image) DESC, month(date_image) DESC
Les fonctions SQL : year() et month() permettent d'accèder à l'année et au mois d'une date donnée

Le mot "DESC" désigne à ORDER BY qu'il s'agit d'un ordre décroissant.

Posté : 03 janv. 2006, 18:46
par Invité
merci beaucoup ;)

cependant, j'aurais encore quelques questions ^^
ce que j'aimerai, c'est par exemple, creer des liens toujours dynamiquement
qui creerait par exemple une page 2005, avec des liens
Janvier, Fevrier, Mars, etc...

mes dates ds la base sont de ce format: 2004-12-07 15:42:47

pourriez vous m'aider encore un peu ? ;)

merci

Posté : 03 janv. 2006, 19:02
par i974
dsl pour le "invité" au dessus ^^

$sql = SELECT *
FROM tml_images
WHERE YEAR(dateheure)='2005'

voilà cette fonction est celle que je cherchais apparement ^^
c'est un debut :)


je souhaiterai savoir comment parcourir la base de donné afin de differencier les differentes années qui s'y trouvent pour que le script creer de lui même les liens vers les années (et les mois ensuite par declinaison) disponible ds la base

Posté : 03 janv. 2006, 23:59
par i974
je ne sais pas si c'est la bonne solution, mais pour les années, j'ai pris la première anné avec la requete SQL, ainsi que la derniere année avec une seconde requete.

puis ensuite je fais la difference, et j'incremente la premiere année pour arriver à la dernière...

je vais mettre resolu ;)


merci encore pour le coup de main

Posté : 04 janv. 2006, 11:41
par sadeq
Même si c'est résolu,
tu peux emettre une seule requête pour extraire toutes les années que tu veux :
$sql = SELECT *
FROM tml_images
WHERE YEAR(dateheure) between '$année_début' AND '$année_fin'