Ik wil gebruikers een rating laten geven op mijn website in sterren of een getal van 1 tot 10 maar al mijn data staat in mysql. Is het mogelijk om dat op de een of andere manier te koppelen met een extra kolom waar hij de ratings ook daadwerkelijk in opslaat en weergeeft als iemand in de database zoekt?
Zover was ik ook ;) Maar als het dus idd mogelijk is, wat ik van jou begrijp, is er dan ergens een tutorial of een voorbeeld hoe dit te maken..?
Dat voorbeeld kan ik je zo geven:
Even om je een idee te geven
tabel items
-item_id
-item_name

tabel ratings
- user_id
- item_id
- rating

En dan heb je ook nog een tabel users natuurlijk maar dat begrijp jezelf ook wel ;-)

Dan kan je dat met deze query ophalen:[code lang ="SQL']
SELECT
i.item_id,
i.item_name,
COUNT(r.item_id) votes,
COALESCE(ROUND(AVG(r.rating)), 0) rating
FROM
items i
LEFT JOIN
ratings r
USING(item_id)
GROUP_BY i.item_id, i.item_name[/code]
Mijn tabel bestaat momenteel uit 13 items maar idd ook een ID en een Naam. Maar ik begrijp uit jouw voorbeeld dat ik een aparte tabel aanmaak voor in jou voorbeeld

- user_id
- item_id
- rating
Inderdaad, het is maar een voorbeeld en je zal de kolom en tabelnamen naar je eigen situatie moeten vertalen.

En als je die tabel aanmaakt zet je een primary key op user_id en item_id zodat niet meerdere keren door dezelfde user op hetzelfde item gestemd kan worden

Reageren