GROUP BY ou DISTINCT ?

jeko
Invité n'ayant pas de compte PHPfrance

07 déc. 2006, 14:29

Bonjour a tous, je vous expose mon souci. Je cherche à afficher dans une page profile d'un membre de mon forum les derniéres personnes ayant visité son profile. Je stock donc dans une table son nom, la date de sa visite et l'id du membre.

Pour le moment j'ai ceci.
              $DB->simple_construct( array( 'select' => 'user_name, date, user_id',
									  'from'   => 'profile_views',
									  'where'  => "profile_id=".$member['id'],
                                                        'order'  => "date DESC", 
                                                        'limit'  => array(0,10)  ) );
Mais bien sur si un membre raffraichit la page 5 fois il apparait 5 fois dans la liste des deniéres visites du profile. J'aimerais n'afficher qu'une seule fois un membre. J'ai donc essayer avec select DISTINCT(user_name) ou encore avec group by user_name mais je n'arrive pas a obtenir le résultat souhaiter. Quelqu'un aurait il une idée ? Merci

ViPHP
ViPHP | 3607 Messages

07 déc. 2006, 14:40

je pense qu'il y a une petite erreur de conception au départ, lorsque tu met dans ta table de dernière visite, la date de dernière visite d'un membre, il faut regarder si ce membre n'a pas déja une entrée dans la table, si c'est le cas, faire seulement un update de la date... non?

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

07 déc. 2006, 15:37

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL".

Merci de prendre le temps de lire les règlements ainsi que l'intitulé de chaque forum avant de poster un nouveau sujet.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 180 Messages

07 déc. 2006, 22:15

Salut !
Quelqu'un aurait il une idée ? Merci
Moi je vote pour un GROUP BY user_id

A+

Didier
Giant steps are what you take ... walking on the moon ;-)