Jump to content
Sign in to follow this  
steph13

Je coince avec les dates

Rate this topic

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)

Share this post


Link to post
Share on other 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]

Edited by dread

Share this post


Link to post
Share on other 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

Edited by recherche_webmaster

Share this post


Link to post
Share on other 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 ;)

Share this post


Link to post
Share on other 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

Edited by petit-ourson

Share this post


Link to post
Share on other 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?

Edited by recherche_webmaster

Share this post


Link to post
Share on other sites

...

now() récupère la date courante du serveur ... donc il ne travaillera pas avec les dates de tes enregistrements.

Share this post


Link to post
Share on other 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'. ;)

Share this post


Link to post
Share on other 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 ! ;)

Share this post


Link to post
Share on other 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é)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...