Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

tri (mysql ou php)

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2321

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 17:31    Sujet du message: tri (mysql ou php)

Salut, j'ai un problème de tri, et j'aurai voulu résoudre ça via mysql, ou a défaut sous php après.

J'ai deux tables :

articles a (id, article)
commentaires c (id, id_article, commentaire, date)

La jointure est celle-ci : c.id_article=a.id

Je voudrais trier par ordre de commentaires décroissants regroupés par article.

Si c'est pas possible, existe t'il une fonction sous php qui permette de faire ça directement, ou est ce qu'il faut la créer ?

Merci !
 
jeroen
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2377

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 17:41    Sujet du message: tri (mysql ou php)

Dis voir ce que tu veux sélectionner, ça sera plus clair déjà ! Very Happy
 
YoyoS Visiter le site web du posteur
Mertyl
WRInaute discret
WRInaute discret

Inscrit le: 17 Juin 2007
Messages: 56

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 18:13    Sujet du message: tri (mysql ou php)

SELECT article, count(commentaire) as nbr
FROM articles,commentaires
WHERE articles.id = commentaires.id_articles
ORDER BY nbr DESC

ca fonctionne pas ca ?
 
Mertyl Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2377

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 18:44    Sujet du message: tri (mysql ou php)

Mertyl a écrit:
SELECT article, count(commentaire) as nbr
FROM articles,commentaires
WHERE articles.id = commentaires.id_articles
ORDER BY nbr DESC

ca fonctionne pas ca ?


Il faudra surement faire un truc du genre , mais il ne nous dit pas s'il veut trier les commentaires séparément ou par nombre de commentaire pour chaque article.

Ca manque d'info ou alors je comprends pas ce qu'il demande.
 
YoyoS Visiter le site web du posteur
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2321

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 20:26    Sujet du message: tri (mysql ou php)

Merci pour l'ébauche.
Le code proposé sélectionne le nombre de commentaires associés à chaque article, et trie le résultat par nombre décroissant. Ce n'st pas ce que je veux faire

Je veux sélectionner tous les commentaires (c.id), groupés par articles (a.id), et triés par date de dernier commentaire

ex : liste d'articles et date des commentaire associés
article - date commentaires associés
1 - 17h30 19h00 21h00
2 - 18h20 19h30 20h00
3 - 14h00 22h00

ici je voudrais récupérer ça
article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20

Merci pour vos Idea
 
jeroen
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2377

URL permanente de ce messagePosté le : Jeu Nov 15, 2007 23:40    Sujet du message: tri (mysql ou php)

pour afficher :

article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20

j'utiliserais quelque chose comme ça:

Code:
SELECT id_article, date
FROM commentaires
ORDER BY id_article DESC,date DESC;


Si tu comptes mettre en même temps le commentaire en lui même, bah tu rajoutes le champ commentaire dans ton select.

article - date commentaire associé - commentaire
3 - 22h00 - blabla1
3 - 14h00 - ...
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20

Ce qui donne:

Code:
SELECT id_article, date, commentaire
FROM commentaires
ORDER BY id_article DESC,date DESC;


NB: Tu n'as pas besoin d'utiliser la table "article" pour faire ça !

Si maintenant, tu as encore envie d'afficher en plus, l'article en lui même. Ca va te faire une requête bien balaise en ressources ! :p Mais bon, ce n'est pas ce que tu veux vu comme tu viens de l'expliquer, vu que tu veux juste afficher ça tu as dis:


article - date commentaire associé
3 - 22h00
3 - 14h00
1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20

Si ce n'est pas le cas, ben va falloir être un poil plus clair.
 
YoyoS Visiter le site web du posteur
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2321

URL permanente de ce messagePosté le : Ven Nov 16, 2007 0:13    Sujet du message: tri (mysql ou php)

Merci. Je suis bine d'accord avec toi, je n'ai pas besoin de la table article dans la requête, et au pire je ferais une jointure

Tu propose ça
YoyoS a écrit:
Code:
(..) ORDER BY id_article DESC,date DESC;


Mais ça trie par id_article, puis par date : ça va donner ça :

1 - 21h00
1 - 19h00
1 - 17h30
2 - 20h00
2 - 19h30
2 - 18h20
3 - 22h00
3 - 14h00

alors que je voudrais afficher en premier l'article dont le dernier commentaire est le plus récent Wink
 
jeroen
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2377

URL permanente de ce messagePosté le : Ven Nov 16, 2007 0:18    Sujet du message: tri (mysql ou php)

ORDER BY id_article DESC,date DESC;

Non ca va te classer en priorité tous les articles en décroissant. Et pour chaque article identique, te mettre la date en décroissant. Merci de tester !

En oracle ça marche en tout cas, t'es sure que ça marche pas sous mysql ?
 
YoyoS Visiter le site web du posteur
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2321

URL permanente de ce messagePosté le : Ven Nov 16, 2007 0:43    Sujet du message: tri (mysql ou php)

YoyoS a écrit:
ORDER BY id_article DESC,date DESC;

Non ca va te classer en priorité tous les articles en décroissant. Et pour chaque article identique, te mettre la date en décroissant. Merci de tester !


on est bien d'accord, et c'est EXACTEMENT ce que je disais plus haut Wink mais c'est pas ce que je veux....

Je veux trier par COMMENTAIRES du plus au moins récent, MAIS EN REGROUPANT les articles

compris ? Embarassed
 
jeroen
Blaze_Heatnix
WRInaute impliqué
WRInaute impliqué

Inscrit le: 31 Déc 2003
Messages: 322

URL permanente de ce messagePosté le : Ven Nov 16, 2007 2:31    Sujet du message: tri (mysql ou php)

jeroen a écrit:
Je veux trier par COMMENTAIRES du plus au moins récent, MAIS EN REGROUPANT les articles


Et comme ça, est-ce mieux ?
Code:
SELECT t.id_article,t.date FROM (SELECT id_article,date FROM commentaires ORDER BY date DESC) t GROUP BY t.id_article ORDER BY t.date DESC


(A noter que c'est beaucoup plus précis qu'un simple : "SELECT id_article,date FROM commentaires GROUP BY id_article ORDER BY date DESC" dans le cas où "date" est sous la forme aaaa-mm-jj)
 
Blaze_Heatnix
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2321

URL permanente de ce messagePosté le : Ven Nov 16, 2007 6:48    Sujet du message: tri (mysql ou php)

ah, merci mais je tourne encors sous mysql 4, pas de requête double Embarassed
 
jeroen
Blaze_Heatnix
WRInaute impliqué
WRInaute impliqué

Inscrit le: 31 Déc 2003
Messages: 322

URL permanente de ce messagePosté le : Ven Nov 16, 2007 19:42    Sujet du message: tri (mysql ou php)

jeroen a écrit:
ah, merci mais je tourne encors sous mysql 4, pas de requête double Embarassed

Bah moi aussi pourtant... Tu as quand même essayé ?

Et celle-là ?
Code:
SELECT id_article,date FROM commentaires GROUP BY id_article ORDER BY date DESC
 
Blaze_Heatnix
jeroen
WRInaute accro
WRInaute accro

Inscrit le: 30 Aoû 2002
Messages: 2321

URL permanente de ce messagePosté le : Ven Nov 16, 2007 20:00    Sujet du message: tri (mysql ou php)

Oui, mais en fait le GROUP BY regroupe tous les articles et ne laisse plus qu'un commentaire. Donc je ne pense pas qu'un GROUP BY puisse faire l'affaire...
 
jeroen
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort