Bonjour,
Je suis actuellement en train de faire une messagerie. Dans ma boite de réception, j'ai des flèches qui permettent d'afficher par ordre croissant ou non les messages envoyés par un destinataire. On tri donc sur le login du destinataire. J'ai donc fait la requête suivante pour l'affichage par ordre décroissant: SELECT * FROM mail M, contact C WHERE M.senderMail = C.idContact AND senderMail=1 ORDER BY loginContact DESC LIMIT 0, 20;
Mais elle ne marche pas et c'est pareil pour l'ordre croissant avec ASC. Je ne comprends pas pourquoi sachant que j'en ai fais une du même type pour la date et elle marche parfaitement. Si quelqu'un pouvait m'aider, ça serait sympa. Voilà le schéma des tables concernées :
MAIL(idMail,#senderMail,#receiverMail,titleMail,messageMail,timestampMail)
CONTACT(idContact,nameContact,fnameContact,loginContact,passwordContact)
Le résultat n'est pas triée mais je n'obtiens pas d'erreur. J'ai 3 personnes qui m'envoient des mails dans ma boite Léo (2 mails), Nath (2 mails) et JM (1 mail). J'obtiens pour l'affichage croissant : JM, Léo, Nath, Nath, Léo.
C'est bizarre!!! Je ne vois pas où est l'erreur ma requête me parait correcte.
est-ce que tu as fait un copier/coller de ta requête ici ?
car en la regardant de plus près, je ne vois pas comment tu peux obtenir plusieurs logins différents :
WHERE M.senderMail = C.idContact AND senderMail=1
tu fais une jointure sur l'ID de l'expéditeur, et tu filtre pour ID expéditeur = 1
donc je ne vois pas comment tu peux récupérer les contacts ayant un autre ID que 1...
En fait j'ai fait un echo de ma requête. Si je veux trié mes mails par le login qui sont dans la table contact la requête SELECT * FROM mail M, contact C WHERE M.senderMail = C.idContact AND senderMail=$idUser ORDER BY loginContact DESC LIMIT 0, 20; n'est pas valable?
Vous n’avez pas trouvé la réponse que vous recherchez ?
C'est bon finalement , j'ai fait un order by sur le senderMail et non pas sur le loginContact j'affiche ensuite le login. Merci pour ton aide aieeeuuuuu.