petit-ourson Posté 19 Août 2005 Posté 19 Août 2005 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)
dread Posté 19 Août 2005 Posté 19 Août 2005 (modifié) 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é 19 Août 2005 par dread
recherche_webmaster Posté 19 Août 2005 Posté 19 Août 2005 (modifié) 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é 19 Août 2005 par recherche_webmaster
recherche_webmaster Posté 19 Août 2005 Posté 19 Août 2005 bein non ça marche pas les gars. Toujours le même message d'erreur m$eme avec la requête de Dread.
recherche_webmaster Posté 19 Août 2005 Posté 19 Août 2005 (modifié) SI ça marche !!!!!!!! ouah j'ai appris des choses avec ce post merci les gars Modifié 19 Août 2005 par recherche_webmaster
dread Posté 19 Août 2005 Posté 19 Août 2005 (modifié) bon bein niquel alors Modifié 19 Août 2005 par dread
petit-ourson Posté 19 Août 2005 Posté 19 Août 2005 (modifié) Moi j'ai pas appris grand chose mais content de t'avoir aidé ;o) Modifié 19 Août 2005 par petit-ourson
recherche_webmaster Posté 19 Août 2005 Posté 19 Août 2005 Euh je reviens sur le problème là : donc maintenant la date s'affiche bien, mais au lieu d'avoir 05-08-2005, par exemple, j'ai 5-8-2005. Comment dois-je faire pour conserver les "0" ?
Sarc Posté 20 Août 2005 Posté 20 Août 2005 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 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
petit-ourson Posté 20 Août 2005 Posté 20 Août 2005 (modifié) $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 ) 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é 20 Août 2005 par petit-ourson
recherche_webmaster Posté 20 Août 2005 Posté 20 Août 2005 (modifié) 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é 20 Août 2005 par recherche_webmaster
recherche_webmaster Posté 20 Août 2005 Posté 20 Août 2005 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...
petit-ourson Posté 20 Août 2005 Posté 20 Août 2005 ah oui oupss j'ai laisser trainer des now() a la place du nom de ton champ (date). J'ai appris à l'ecole et sur http://dev.mysql.com/doc/mysql/fr/ (il n'y a pas plus complêt)
recherche_webmaster Posté 20 Août 2005 Posté 20 Août 2005 merci pour le lien ! ah oui oupss j'ai laisser trainer des now() a la place du nom de ton champ (date). qu'est ce que je fais alors? je laisse comme ça ou ça pose pas de problème?
petit-ourson Posté 20 Août 2005 Posté 20 Août 2005 ...bah change les "now()" en "date". Ca risque de te poser des problème oui
petit-ourson Posté 20 Août 2005 Posté 20 Août 2005 ... now() récupère la date courante du serveur ... donc il ne travaillera pas avec les dates de tes enregistrements.
recherche_webmaster Posté 20 Août 2005 Posté 20 Août 2005 ok c'est une raison ! mais maintenant j'ai remplacé now par date et j'ai de nouveau une erreur mysql_fetch_array is not a valid mysql result etc....
Anonymus Posté 20 Août 2005 Posté 20 Août 2005 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'.
recherche_webmaster Posté 20 Août 2005 Posté 20 Août 2005 C'est noté. mais est-ce à dire que le ORDER BY ne fonctionne pas avec un champ DATETIME?
Sarc Posté 20 Août 2005 Posté 20 Août 2005 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 !
recherche_webmaster Posté 20 Août 2005 Posté 20 Août 2005 cela étant j'ai toujours le mysql_fetch_array is not a valid argument depuis que j'ai remplacé "now" par "date" dans la requête sql.
petit-ourson Posté 20 Août 2005 Posté 20 Août 2005 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é)
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant