Pb d'optimisation php/mysql - PHP - Programmation
Marsh Posté le 14-12-2004 à 16:33:10
Hummm à vue de nez :
select id_art, count(id)
from commentaire
where date > date_dernière_visite
group by id_art
Et tu utilises la fonction mysql_num_rows() qui te donnera le nombre d'articles.
Basiquement, il y a un select count(distinct id_art) avec les mêmes critères, mais bon les select de ce type c'est pas toujours génial niveau perfs.
Je suis très moyen en PHP, il y a sans doute une meilleure solution
Marsh Posté le 16-12-2004 à 02:14:20
J'aurais dit :
select distinct(id_art)
from commentaire
where date > date_dernière_visite
c la methode la plus simple je pense
Marsh Posté le 16-12-2004 à 09:49:43
Qu'est-ce que cela vient faire dans la cat PHP ?
Marsh Posté le 14-12-2004 à 16:14:25
Salut tlm
je vous explique mon problème : j'ai une table "article" auquelle un certains nombres de commentaires sont reliés... donc j'ai une table "commentaires" qui contient id (l'id du comm), id_art (l'id de l'article commenté), date (au format datetime : YYYY-MM-DD HH:MM:SS).
J'enregistre pour chaque membre la dernière visite sur le site au format datetime aussi.
Sur mon index.php, j'affiche tous les articles avec un lien : "il y a xx commentaires" pour chaque article.
Je voudrais que lorsque un des commentaire de l'article est plus récent que la dernière connexion, le lien soit d'un autre style, donc il faut détecter avec Mysql...
Pb : je sais pas comment optimiser mon code et je suis nul en Mysql !
Donc je peux essayer de rechercher dans la table 'commentaire' la liste des id_art telle que date > dernière visite, le problème c'est que je sais pas comment dire à Mysql de ne rechercher qu'une seule fois par id_art afin d'éviter de faire des recherches inutiles...
merci !