Bonjour à tous,
Je réalise actuellement une chatbox relativement complète (interface d'administration, inscription, log, anti-spam, modo, archives...) en php/mysql/html/css. La date/heure des messages s'affichent actuellement sous la forme :
Tout de fois, une précision à la seconde pour des messages de plus de trois mois ou encore afficher le jour/moi/année pour des messages très récents n'a pas de sens
Code : Sélectionner tout - Visualiser dans une fenêtre à part [%d/%m/%Y %H:%i:%s]
. Ainsi à l'aide d'instructions conditionnelles en php j'arrive à afficher une date/heure sous la forme :
De telle vérifications pour chaque message affiché demande malheureusement beaucoup de ressources...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [%d/%m/%Y %H:%i] pour les messages de plus de 24h [%H:%i:%s] pour les messages de moins de 24h
J'en viens ainsi à ma question : Comment puis-je directement formater la date/heure du message à afficher selon son ancienneté à l'aide d'une requête mySQL ?
Pour info voici la requête que j'utilise actuellement pour lire les messages :
Et voici le plan de la bdd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT DATE_FORMAT(date, \'[%d/%m/%Y %H:%i:%s]\') AS date, pseudo, message FROM chat_messages WHERE id>(SELECT MAX(id)-100 FROM chat_messages) ORDER BY id
J'imagine qu'il va falloir utiliser CASE ou IF
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 | id | date | pseudo | message | --------------------------------------------------------------- | 1 | 2012-11-28 18:41:19 | Bellumm | blabla |
Merci pour votre aide
Bellumm
Partager