8792 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Vero a écrit :
.De plus, je doute fort que Quentin range ses "godasses" n'importe où ... connaissant son côté ordonné ... Smiley lol Smiley cligne

Sans doute, mais c'est pourtant l'image qu'il donne. Smiley ohwell
Se déplacer en marche arrière ça fonctionne aussi ! Smiley cligne
Est-ce raisonnable, est-ce pérenne ?

Je connais Quentin sur phpdeb et cela m'étonnerait fort qu'il ne reçoive pas le même discours là-bas, surtout avec les intervenants que je connais, s'il venait à se vanter de mettre un timestamp dans un INT. Smiley langue Smiley cligne
Modifié par Bison (10 Nov 2006 - 20:51)
Administrateur
"Avoir raison n'implique pas forcément de le démontrer sans tact" (proverbe Alsacréationnien inventé à l'instant)
Smiley cligne <-- le ptit smiley qui va bien
Administrateur
stocker une date dans un INT unsigned n'est pas forcément mal réfléchi, à partir du moment où l'on a le besoin d'exploiter ces dates nativement en INT sans utiliser de conversion (implicite ou explicite) à chaque opération, et donc en économisant des ressources.
mais cette application est spécifique.
dew a écrit :
stocker une date dans un INT unsigned n'est pas forcément mal réfléchi, à partir du moment où l'on a le besoin d'exploiter ces dates nativement en INT sans utiliser de conversion (implicite ou explicite) à chaque opération, et donc en économisant des ressources.
mais cette application est spécifique.
Il est quand même plus clair d'utiliser un type de champ prévu pour la donnée que l'on y met.

Sinon, autant n'utiliser que des champs binaires. Smiley cligne

De plus, je ne pense pas que l'opérateur UNIX_TIMESTAMP soit très couteux...
Modifié par Eldebaran (10 Nov 2006 - 22:15)
a écrit :

Une date se met dans un champ type DATE, DATETIME et rien d'autre.
Mysql dispose d'un tas de fonctionnalités liées au champ de type date qui permettent d'interroger la bd de 36 manières, de profiter de plages de tri, etc.

Bof, je ne vois pas l'intérêt d'utiliser le format datetime. AVec un int aussi je peux faire des plages de tri.
P.ex. select ... from ... where champ between UNIX_TIMESTAMP() -2*86400 and UNIX_TIMESTAMP() -86400

En plus c'est super pratique de récupérer une date en int, après je peux la formater comme je veux avec la fonction date et compagnie en php.

Donne-moi une fonction SQL vraiment pratique avec les datetime qu'on ne peut pas faire en int ?

Par contre, float, j'avoue que c'est compètement crétin... à moins d'avoir une date plus précise qu'à la seconde : c'est pas faisable autrement.

a écrit :

C'est pas parce que tu "codes" de cette manière qu'il faut proposer au noob de faire la même chose !

C'est une autre façon de faire, je ne vois pas où peut être le problème. Chacun choisit sa façon de coder.
Bison a écrit :


Il est vrai que je vais à l'essentiel sans raccourci



Soit, mais tu n'es pas le seul à faire sur ce forum...

Soit direct mais technique, circonstancié et sans aucune hésitation à être ardu. et nous t'en remercierons tous.

Mais pas plus et rien d'autre.
Modifié par clb56 (11 Nov 2006 - 00:02)
Franchement Quentin, je ne sais pas s'il faut rire ou pleurer ? Smiley decu

Je vais prendre le parti d'en rire, la grimace est plus belle. Smiley cligne

QuentinC a écrit :

Donne-moi une fonction SQL vraiment pratique avec les datetime qu'on ne peut pas faire en int ?
En voilà une primordiale :
- celui qui tenterait de s'inspirer ou d'utiliser ton modèle de table peut oublier tout ce qui précède 2/01/1970. Smiley eek

Donc, si l'un d'entre-vous réalise un site sur la seconde guerre mondiale, il est préférable de commencer vos hostilités en mai 1970 ou le 1er avril 1971 tient... un poisson... la bonne blague ! Smiley cligne

Pour conclure, je vais quand même essayer de défendre un peu les DEV de Mysql :
- j'ai peine à imaginer que ces pauvres gars se sont casser la tête et se sont plantés grave en développant plusieurs dizaines de fonctions liées aux champs de type DATE, DATETIME et TIMESTAMP Smiley cligne Smiley langue

Pourquoi n'ont-ils pas pensé au INT, c'est fou quand même ! Smiley fou
Modifié par Bison (12 Nov 2006 - 13:09)
Bison a écrit :

En voilà une primordiale :
- celui qui tenterait de s'inspirer ou d'utiliser ton modèle de table peut oublier tout ce qui précède 2/01/1970. Smiley eek

Oui.
Administrateur
Bon, c'est pas que les querelles de récré m'ennuyent fortement, mais l'ensemble de ce sujet commence à me gonfler sévèrement.

Chacun a son avis, chacun le défend et chacun a raison.
En toute théorie, et si l'on veut respecter à la lettre l'usage MySQL, Bison a raison (et le fait bien remarquer).
En pratique, on a pu remarquer que - comme souvent - cela dépend des cas précis et des besoins de chacun, et que parfois, il est plus léger de procéder autrement surtout si on n'a pas besoin d'utiliser toutes les possibilités qu'offre MySQL pour les dates.

Bref, vous l'avez compris, on n'avancera pas et on va continuer à s'engluer dans un troll complètement inutile.

Voilà ce que je vous propose :
- en débattre entre vous à l'extérieur du forum, parce que là, franchement, c'est gonflant
- laisser tomber (merci pour nous)
- continuer vos querelles et vous prendre tous un bannissement de quelques jours pour aérer le forum

C'est pas tout ça, mais on a d'autres chats à fouetter.
Modifié par Raphael (12 Nov 2006 - 13:51)
Bon ça commence vraiment à m'énerver ce truc !
Pourtant j'ai tout vérifié !

Voilà le script que j'ai fait, repris d'un autre site :
		$tab_month = array(1=>"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
		$tab_date = explode(' ', $row['parution']);
		$tab_dmy = explode('-', $tab_date[0]);
		$newdate = ''.$tab_month[$tab_dmy[1]].' '.$tab_dmy[0].'';


Pour les deux premières dates; $newdate est correct :
1993-11-01 00:00:00 donne => Novembre 1993
1994-12-01 00:00:00 donne => Décembre 1994
2005-08-01 00:00:00 donne => 2005.

Pourquoi n'affiche t-il pas le mois?
J'ai un nouvel indice, il me met comme erreur
Notice: Undefined index: 08

DONC il récupère bien le mois en chiffres (08), mais pourquoi refuse t-il de le remplacer par août par la suite ??

Merci !
gordie a écrit :
DONC il récupère bien le mois en chiffres (08), mais pourquoi refuse t-il de le remplacer par août par la suite ??

Merci !
Essaie
$newdate = ''.$tab_month[intval($tab_dmy[1])].' '.$tab_dmy[0].'';

Modifié par Eldebaran (12 Nov 2006 - 23:29)
Pages :