"Meest bekeken" ophalen met 2 tabbellen
Arwin vdv
02/06/2010 13:54:44Hallo 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?
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?
PHP hulp
21/11/2024 18:25:40Gewijzigd op 02/06/2010 14:27:21 door B a s
Arwin vdv
02/06/2010 14:49:53Arwin 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:
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?
Heb hem even aangepast zodat hij in de goede volgorde de id's laat zien:
Code (php)
1
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?
Arwin vdv
04/06/2010 20:11:51Niemand?
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.
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.
Klaasjan Boven
04/06/2010 21:56:36geen codetahs
Gewijzigd op 04/06/2010 21:59:19 door Klaasjan Boven
Klaasjan Boven
04/06/2010 21:58:54Wat Bas doet kan niet, geen group by zonder een aggregate functie zoals max min count sum enz.
zoiets zal het worden
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
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
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