video's met meeste reacties

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Roy marijnissen

roy marijnissen

12/08/2010 18:43:32
Quote Anchor link
Ik heb ik een database video's staan in een andere tabel van de database worden de reacties op video's opgeslagen. In die tabel krijgen alle reacties een id en een video_id mee. Het video id is het id van de video zoals deze ook in een video tabel staat. Nu wil ik eigenlijk weten welke 4 video's de meeste reacties hebben gehad. In de tabel reacties moet dus worden opgeteld welke video_id er het meeste in staat. Heeft iemand enig idee hoe ik dit kan doen ? Alvast bedankt !
Gewijzigd op 13/08/2010 00:49:47 door B a s
 
PHP hulp

PHP hulp

25/12/2024 19:13:37
 
Www JdeRuijterNL

www JdeRuijterNL

12/08/2010 19:11:41
Quote Anchor link
Dat kan inderdaad, zie ook:

INNER JOIN: http://dev.mysql.com/doc/refman/5.0/en/join.html
Gewijzigd op 12/08/2010 19:12:04 door www JdeRuijterNL
 
Justin S

Justin S

12/08/2010 19:15:01
Quote Anchor link
Ik weet niet zeker of het klopt maar het is het proberen waard.
Eerst doe je een GROUP BY video_id
Vervolgens voer je een COUNT uit over deze rijen, dan krijg je het totaal.
En dan moet je sorteren op dat getal en een limit 0,4 meegeven

Zelfde soort case hier gevonden.

Zoiets zou het moeten worden volgens mij..
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
        video_id,
        count(*)
FROM
        video_reacties
GROUP BY
        type
ORDER BY
         count(*) DESC
Gewijzigd op 12/08/2010 19:19:04 door Justin S
 
Tobias Tobias

Tobias Tobias

12/08/2010 19:19:01
Quote Anchor link
Ik heb geen verstand van INNER JOIN, dus ik los het zo op

$query = "SELECT video_id, COUNT(video_id) FROM video_reacties GROUP BY video_id ORDER BY COUNT(video_id) DESC LIMIT 4;

en dan de video_id uit de tabel met video's halen

EDIT: Justin Streuper typt sneller dan mij
Gewijzigd op 12/08/2010 19:19:52 door Tobias Tobias
 
Justin S

Justin S

12/08/2010 19:20:21
Quote Anchor link
Ja die zou je eventueel met een multiple-select-query kunnen aanroepen. Maar dan wordt het een erg ingewikkeld verhaal.
 
Www JdeRuijterNL

www JdeRuijterNL

12/08/2010 19:52:27
Quote Anchor link
INNER JOIN is niet zo moeilijk, en ook een nettere oplossing.
Tobias Witmer op 12/08/2010 19:19:01:
Ik heb geen verstand van INNER JOIN, dus ik los het zo op

$query = "SELECT video_id, COUNT(video_id) FROM video_reacties GROUP BY video_id ORDER BY COUNT(video_id) DESC LIMIT 4;

en dan de video_id uit de tabel met video's halen

EDIT: Justin Streuper typt sneller dan mij

Maar hoe haal je de data van de reacties uit een ander tabel en vergelijk je die met een ander tabel? INNER JOIN.
Of je moet een hoop meer code gaan kloppen.

SELECT * FROM VIDEOTABEL INNER JOIN Video_id ON(REACTIETABEL.post_id = Video_id.post_id)
ORDER BY 18 DESC LIMIT 3
Gewijzigd op 12/08/2010 20:20:20 door www JdeRuijterNL
 
Justin S

Justin S

12/08/2010 20:04:25
Quote Anchor link
INNER JOIN is inderdaad een nettere oplossing. Echter zou ik niet zo 1, 2, 3 weten hoe je dat in deze situatie toepast? Geef eens een voorbeeld OverdatumpuntNL
 
Joren de Wit

Joren de Wit

12/08/2010 20:11:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
  v.titel,
  COUNT(vr.id) AS aantal
FROM
  videos AS v
INNER JOIN
  video_reacties AS vr
    ON vr.video_id = v.id
GROUP BY
  v.titel
ORDER BY
  aantal DESC
LIMIT 4
 
Roy marijnissen

roy marijnissen

12/08/2010 22:40:31
Quote Anchor link
Het is gelukt ! Super bedankt voor jullie hulp !
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.