Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1652 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU]Afficher date la plus récente et heure en conséquence

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]Afficher date la plus récente et heure en conséquence

n°1448464
elliotdoe
Posté le 27-09-2006 à 21:45:50  profilanswer
 

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 :
http://michalatore.free.fr/pb-php.JPG


Message édité par elliotdoe le 28-09-2006 à 14:53:46
mood
Publicité
Posté le 27-09-2006 à 21:45:50  profilanswer
 

n°1448471
elliotdoe
Posté le 27-09-2006 à 21:53:56  profilanswer
 

Niveau requête, j'en suis à ça :
 

Citation :


select messages.id as id, messages.login as login, messages.sujet as sujet, reponses.id_reponse, reponses.id_message,
max(reponses.date) as date, max(reponses.heure) as heure
from reponses inner join messages
where messages.id = reponses.id_message
group by  reponses.id_message
order by reponses.id_reponse DESC;


 
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...


Message édité par elliotdoe le 27-09-2006 à 22:16:48
n°1448485
elliotdoe
Posté le 27-09-2006 à 22:18:43  profilanswer
 

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.

n°1448492
elliotdoe
Posté le 27-09-2006 à 22:27:24  profilanswer
 

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...

n°1448496
omega2
Posté le 27-09-2006 à 22:40:14  profilanswer
 

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.

n°1448497
elliotdoe
Posté le 27-09-2006 à 22:42:56  profilanswer
 

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...

n°1448502
omega2
Posté le 27-09-2006 à 22:51:07  profilanswer
 

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?)

n°1448503
elliotdoe
Posté le 27-09-2006 à 22:51:38  profilanswer
 

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 ?

n°1448510
elliotdoe
Posté le 27-09-2006 à 23:07:48  profilanswer
 

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 :jap:

n°1448512
elliotdoe
Posté le 27-09-2006 à 23:11:52  profilanswer
 

J'ai trouvé chez mon meilleur ami (google) :

Citation :

SELECT Design
FROM Produit
WHERE Prix = (SELECT Prix
FROM Produit
WHERE Design = 'chaise')


 
C'est un exemple, mais j'ai déjà la structure (je débute en php/SQL au cas où vous auriez pas remarqué :D ). Je m'y remets demain, encore merci :jap:

mood
Publicité
Posté le 27-09-2006 à 23:11:52  profilanswer
 

n°1448612
MagicBuzz
Posté le 28-09-2006 à 10:23:02  profilanswer
 

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...

n°1448634
elliotdoe
Posté le 28-09-2006 à 11:11:06  profilanswer
 

C'est une bonne question :D 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...

n°1448817
elliotdoe
Posté le 28-09-2006 à 14:49:38  profilanswer
 

J'ai réussi :

Citation :

select reponses.date, reponses.heure, messages.sujet,
messages.login, messages.id, reponses.id_reponse, reponses.id_message
from messages, reponses
where messages.id = reponses.id_message
group by reponses.id_message
order by reponses.id_reponse DESC


 
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 :jap:

n°1448820
elliotdoe
Posté le 28-09-2006 à 14:51:34  profilanswer
 

Voilà le résultat que je voulais :
http://michalatore.free.fr/php-pb-2.JPG
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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU]Afficher date la plus récente et heure en conséquence

 

Sujets relatifs
[C#.NET] Afficher une zone d'un fichier PDF dans une fenetre ?[Résolu][HTML/PHP] Aide (basique) pour un tableau
[résolu] Rendre invisible la valeur d'un "submit"Résolu - Afficher dans ma page une valeur pointée par une URL
[RESOLU] affichage de 'Resource id #5' au lieu de ma variable[RESOLU] Probleme de d'extraction avec SELECT
[résolu] Comment récupérer nom + quantité dans liste déroulantetype date sous oracle
Plus de sujets relatifs à : [RESOLU]Afficher date la plus récente et heure en conséquence


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR