count et group by

Petit nouveau ! | 2 Messages

24 avr. 2005, 22:48

Hello !

je cherche à afficher le nombre de contenus vu par mes visiteurs
j'ai 1 table ip_stat_vod dans laquelle j'enregistre l'id du client (table ip_client), l'id du contenu (table ip_contenu) et la date de la visite

$sql = "SELECT 
nom_client,id_numAutoClient, COUNT(*) AS nbr_vu 
FROM ip_stat_vod, ip_client 
GROUP BY id_numAutoClient";

$req=mysql_query($sql);

while($data = mysql_fetch_array($req)) {
$nbr_vu = mysql_result($req,"0","nbr_vu");
echo $nbr_vu;
}
J'ai essayé plusieurs tentatives, une semblait pas trop mal mais seulement avec 1 visiteurs..
merci pour votre aide

A++ OLi

Mammouth du PHP | 19672 Messages

25 avr. 2005, 00:07

Pour fonctionner, une requête avec un agregat (count(*) par exemple) devra comporter dans la clause GROUP BY tous les autres champs, ainsi, la requête est incomplète et devrait être:
$sql = "SELECT
nom_client,id_numAutoClient, COUNT(*) AS nbr_vu
FROM ip_stat_vod, ip_client
GROUP BY id_numAutoClient, nom_client";
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 2 Messages

25 avr. 2005, 00:24

Merci pour ta réponse :D
Mais ça va po mieux... !
Je crois que j'ai un problème dans ma clause while, car avec 1 client dans ma table ça marche, mais dès que j'ai 2 clients il y a une boucle qui se produit et je dois arrêter mon navigateur !! :shock:

Ma table ip_stat_vod ressemble à ça :

IDclient1 | IDcontenu8 | date
IDclient1 | IDcontenu3 | date
IDclient1 | IDcontenu5 | date
IDclient1 | IDcontenu5 | date

ça ça marche car à l'affichage j'ai bien
IDclient1 = 4


ça se gate dès que je rejoute une entrée
IDclient2 | IDcontenu5

Là il boucle... :cry:

Merciii !

Mammouth du PHP | 19672 Messages

25 avr. 2005, 00:32

Là, je cale et ne peux que te renvoyer au manuel MySQL sur la clause GROUP BY, tu y trouveras sûrement aussi rapidement que moi la solution que je ne retrouve pas de tête.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: