Hallo allemaal,

Ik wil een pagina maken waarop de producten staan die het meest zijn bekeken.
Wanneer iemand een product bekijken wordt er in de tabel "log" een nieuwe rij aangemaakt: ID|ID_product|ip|datumtijd
Er staan dus van 1 product meerdere rijen in de "log" tabel.

Hoe kan ik een lijst van producten krijgen die is gesorteerd op het aantal bezoeken? (met een limit van 10)
Is dit mogelijk met een query?
SELECT `ID_product` FROM log GROUP BY `ID_product` ORDER BY datumtijd DESC
Arwin van der Velden op 02/06/2010 14:47:56

Bas, dat is bijna wat ik bedoel,
Heb hem even aangepast zodat hij in de goede volgorde de id's laat zien:

SELECT `ID_product` FROM log GROUP BY `ID_product` ORDER BY COUNT(ID_product) DESC LIMIT 0, 10


Nu krijg ik dus een lijstje met id's, en die producten moet hij uit de andere tabel halen (products), kan ik dit in 1 query doen?


Niemand?
Ik kan nu wel de output van deze query in een array stoppen en die array, met id's, weer meegeven in een query naar de tabel producten, maar kan het ook in query?
Dat hij dus de id's ophaald in de log database en dan meteen met die id's de producten geeft.
geen codetahs
Wat Bas doet kan niet, geen group by zonder een aggregate functie zoals max min count sum enz.

SELECT 
   log.id_product, 
   count(log.id_product) as aantal,
   productnaam
FROM 
   log,
   producten
WHERE 
   producten.id = log.id_product
GROUP BY
   log.id_product,
   productnaam
ORDER BY COUNT(ID_product) DESC LIMIT 0, 10

zoiets zal het worden

Reageren