Afficher date la plus récente et heure en conséquence [RESOLU] - SQL/NoSQL - Programmation
Marsh Posté le 27-09-2006 à 21:53:56
Niveau requête, j'en suis à ça :
Citation : |
En classant par l'id_reponse ça devrait marcher puisque l'id_reponse le plus grand est le plus récent... sauf qu'après un GROUP BY, le ORDER BY est pas prit en compte...
Marsh Posté le 27-09-2006 à 22:18:43
Pourquoi mon order by n'est pas pris en compte après le group by ?
Il est obligatoire, il me permet de ne pas afficher tous les champs de réponse, mais juste le plus récent.
Marsh Posté le 27-09-2006 à 22:27:24
Bon... je pars sur quelque chose de faux je pense.
Comment faire pour sélectionner : posteur, sujet, date du dernier message, heure du dernier message, sachant que c'est sur deux tables différentes...
Marsh Posté le 27-09-2006 à 22:40:14
Celà ne serait il pas une bonne idée d'indiquer quel id_message tu veux obtenir pour chaque discution? Je paris que tu aurais voulut l'id_message le plus grand, mais vu que tu ne le précises pas, mysql en prend un au hasard parmis tous ceux qui sont possible.
Ce n'est pas étonant que tu n'obtiennes pas le tri voulut.
Marsh Posté le 27-09-2006 à 22:42:56
J'ai 2 id message :
- table messages : id (auto-incrément)
- table reponses : id_message (pour lier la réponse au message, clé étrangère)
Je veux classer par reponses.id_message. Le truc, c'est qu'il faut que ça sélectionne la date et l'heure qui correspondent à ce reponses.id_message...
Marsh Posté le 27-09-2006 à 22:51:07
tu tri par id_reponse. Soit logique : indique lui quel id_message tu veux parmis ceux qui sont regroupé au moment du group by. Si tu ne lui indiques pas, il triera à partir de données pris au hasard et un tri basé sur du hasard ne done pas souvent un tri trés naturel.
Quand au fait que t'ai besoin de la date et heure du message correspondant au id_message, ca nécessite l'utilisation de requette imbriqué pour que ca soit fait proprement (en clair, la requette principale contiendra une requette qui fera le group by avec indication de la sélection du bon id_message par heure. (plus grand, plus petit, autre?)
Marsh Posté le 27-09-2006 à 22:51:38
Si mes dates étaient en format date ça serait p'têtre plus simple.
Par contre, je crois que c'est en format américain sur MySQL, ça donne quoi à traduire en date jj/mm/aaaa ?
Marsh Posté le 27-09-2006 à 23:07:48
Je stoppe pour ce soir. Pour reformuler ce que je veux :
- afficher : le login du posteur du message et le sujet du message
- afficher : la date de la dernière réponse postée et l'heure associée...
J'ai essayé de faire une requête imbriquée, mais je dois avoir des problèmes de syntaxe, j'ai des erreurs. Quelqu'un pourrait me redonner la forme que ça doit avoir ? Merci beaucoup à toi omega2, et merci aux autres
Marsh Posté le 27-09-2006 à 23:11:52
J'ai trouvé chez mon meilleur ami (google) :
Citation : SELECT Design |
C'est un exemple, mais j'ai déjà la structure (je débute en php/SQL au cas où vous auriez pas remarqué ). Je m'y remets demain, encore merci
Marsh Posté le 28-09-2006 à 10:23:02
j'ai une question : pourquoi la date et l'heure ne sont pas dans le même champ ?
parceque tu cherches un peu la merde avec tes deux champs, ça te complique vachement la vie...
Marsh Posté le 28-09-2006 à 11:11:06
C'est une bonne question Je savais pas qu'on pouvait mettre les deux dans un seul champ. Comme j'ai dit, je suis débutant, et j'apprends seul, donc les finesses pour l'instant...
Marsh Posté le 28-09-2006 à 14:49:38
J'ai réussi :
Citation : select reponses.date, reponses.heure, messages.sujet, |
J'ai fait étape par étape, en ajoutant le code de la requete au fur et à mesure. Je m'embrouillais les pinceaux en essayant de tout faire d'un coup hier. Merci à tous ceux qui m'ont aidé. Je prends tous les conseils aussi, sur l'organisation du code, et tout ce qui peut éclaircir mon code. Merci encore une fois à ceux qui prennent un peu de leur temps pour conseiller et aider
Marsh Posté le 28-09-2006 à 14:51:34
Voilà le résultat que je voulais :
On a le login du posteur, le sujet de son message, et en face, la date et l'heure de la dernière réponse.
Marsh Posté le 27-09-2006 à 21:45:50
Bonjour, j'essais d'expliquer correctement :
2 tables dans ma base SQL :
- messages : id_message, date, heure, posteur, sujet du message
- reponses : id_reponse, id_message, date, heure de la réponse
Je veux :
- afficher la liste des messages existants (juste le posteur et le sujet)
- afficher en face de chaque login+sujet : la date et l'heure de la dernière réponse postée.
Le problème :
- mes champs date ne sont pas sous la forme DATE dans MySQL (sont enregistrés en jj/mm/aaaa)
Voilà ce que ça donne, pour vous aider à visualiser :
Message édité par elliotdoe le 28-09-2006 à 14:53:46