Manipuler des dates PHP

WRInaute occasionnel
Bonjour,

Tout dabord je me dois de preciser que je débute en PHP.
dans ma base de données j'ai des enregistrement de dates sous forme
14-08-2006 en VARCHAR.

je souhaiterais afficher des données stockées entre deux dates comment faire?

ma requete actuelle ne fonctionne pas tout a fait :

Code:
$sql = "SELECT * FROM matable WHERE monchamps BETWEEN '$dat1' AND '$dat2' ";

pouvez vous m'aider please.
 
WRInaute passionné
Tu compare tes dates avec quel type de champs ?
Si c'est des dates mysql il faut transformer tes dates php au format de ta BD.
 
WRInaute occasionnel
je n'ai pas tout a fait saisi ce que tu as écrit.

mes dates ne son pas des dates mysql ce sont des dates saisies directement dans la base de données mais mon soucis est qu'il ne me les considere pas comme des dates.
 
WRInaute impliqué
Salut,

Premièrement ton champ doit être de type DATETIME pour que tu puisses bénéficier des très puissantes fonctions de calculs de date de mysql. Etant donné que ton champ est sous la forme varchar, ca ne sera pas possible. De plus je crois que le format de tes dates n'est pas correct pour mysql. Si j'ai le temps je te donnerais un petit bout de code pour transformer tes dates en format correct ;)

En attendant il y a cette page :

http://mysql.com/doc/refman/5.0/fr/date ... tions.html

Tu y trouveras ton bonheur ;)

Pour ton problème, si tu sais que $date1 est inférieur à $date2 :

Code:
$sql = 'SELECT * FROM matable WHERE monchamps > '$date1' AND monchamps < '$date2';

Après avoir converti correctement tes champs en DATETIME ;)
 
WRInaute occasionnel
ok mes dates sont maintenant au format DATE aaaa-mm-jj comment afficher mon resultat en jj-mm-aaaa ?
 
WRInaute impliqué
webac a dit:
ok mes dates sont maintenant au format DATE aaaa-mm-jj comment afficher mon resultat en jj-mm-aaaa ?

Très simple : SELECT GET_FORMAT(date,'EUR') FROM table ou plus de liberté avec DATE_FORMAT(date, '%d %m %Y');

Voir la doc ;)
 
Discussions similaires
Haut