Aller au contenu
steph13

Je coince avec les dates

Noter ce sujet :

Recommended Posts

c'est pad DAY(date) mais DAYOFMONTH(date)

Parfois vaudrait mieux donner des liens de doc car je suis pas doué pour aider sans tester ;o)

Partager ce message


Lien à poster
Partager sur d’autres sites

ce n'est pas une question de sécurité mais de méthodologie

par exemple ça te permettrai de voir que $res[date] ne peut rien renvoyer et que c'est ça qui doit te créer une erreur

voici la bonne requête :

$req="SELECT mot, specialite, CONCAT(DAYOFMONTH(date),'-', MONTH(date) ,'-',YEAR(date)) madate, site FROM maTable ORDER BY DATE(date) DESC LIMIT 0,5"

et pour récupérer la date, à ce moment tu fais :

$res[madate]

Modifié par dread

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon je viens de remplacer DAY par DAYOFMONTH

c'est pareil.

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource on line 22

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource on line 39

Modifié par recherche_webmaster

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour !

En php, ça serait facile :

str_pad($variable, 2, "0", STR_PAD_LEFT);

Avec la valeur "5", il t'afficherait "05"...

Mais je ne connais pas son équivalent en SQL :wacko:

Il serait bête de repasser par un explode en PHP pour bien t'afficher ta date tout de même... Donc désolé je peux pas t'aider plus ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

$req="SELECT mot, specialite, CONCAT(  IF(DAYOFMONTH(now())<10,CONCAT('0',DAYOFMONTH(now())), DAYOFMONTH(now())),'-',IF(MONTH(now())<10,CONCAT('0',MONTH(now())),MONTH(now())) , '-',YEAR(date) ) madate, site FROM maTable ORDER BY DATE(date) DESC LIMIT 0,5"

Ok ca devient un peu usine a gaz :o)

Enfin ceci dit avec une expression reguliere, on aurait transformer la date correctement avec l'ajout des '0' supplémentaire en une ligne lol

Modifié par petit-ourson

Partager ce message


Lien à poster
Partager sur d’autres sites

ok mais là j'ai une date comme ça maintenant :

20-08-0

au lieu de 20-08-2005

ou 20-8-2005 comme avant cette solution.

edit: non c'est bon, je crois que c'est parce que j'ai une date par défaut à 00-00-0000 dans la base.

Merci !

Vous l'avez appris comment le language sql ? parce que je vois pas vraiment de cours pour ça?

Modifié par recherche_webmaster

Partager ce message


Lien à poster
Partager sur d’autres sites
quand même c'est mal fichu ces histoire de date avec mysql.

les zeros s'affichent pas, les formats doivent être bidouillés etc...

<{POST_SNAPBACK}>

Mysql est une base de données, elle est faite pour stocker des données, pas forcément pour manipuler des données.

Tant que ca reste simple, tu peux le faire en sql, sinon le mieux est de le faire en php. Ou plus exactement, tu aurais dû prendre un autre format de date, histoire de ne pas te casser la tete.

Le format que tu as pris est très bien, lorsqu'il s'agit uniquement d'afficher la date d'un champ.

Lorsque tu veux te lancer dans des manipulations, ca devient assez vite usine à gaz, parce que justement ca n'est pas concu pour ca.

Lorsque tu as affaire à des dates qu'il te faudra manipuler, trier, etc.., tu devrais systématiquement choisir un format 'timestamp'. Ce format traduit une date en nombre, et permet toutes les manipulations que l'on veut, très facilement.

De plus, son affichage/utilisation/manipulation en php est assez triviale, une fois que l'on a 'compris' le truc, et une fois que l'on connait les 2-3 fonctions basiques.

Bref, la prochaine fois, te fais pas avoir, passes tes dates en 'timestamp'. ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

ORDER marche très bien avec les champs date et datetime, jusqu'à preuve du contraire... J'utilise ORDER sur tous mes champs de date et de datetime sans aucun souci ! ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ta requête doit etre erronée ... Je (on) donne des pistes, pas forcément une réponse complête. A toi après d'adapter à ton travail.

Enfin j'ai l'impression que cela tourne un peu en rond comme sur un autre post. Il est probable également que je n'ai pas compris le but d'un forum.

En fait j'ai l'impression que tu ne comprends pas trop ce que tu fais donc je te conseillerai (enfin ce ne sont que des conseils venant de moi) de te documenter sur les différentes pistes que l'on a donné afin d'avancer et de pouvoir réutiliser cela les prochaines fois.

(désolé)

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×