Classer par mois et année ...

Eléphanteau du PHP | 30 Messages

03 janv. 2006, 15:34

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:

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

03 janv. 2006, 17:13

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.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Invité
Invité n'ayant pas de compte PHPfrance

03 janv. 2006, 18:46

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

Eléphanteau du PHP | 30 Messages

03 janv. 2006, 19:02

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

Eléphanteau du PHP | 30 Messages

03 janv. 2006, 23:59

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

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

04 janv. 2006, 11:41

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'
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène