login  Naam:   Wachtwoord: 
Registreer je!
 Forum
Zoeken  Regels  Help
Categorieën > PHP & SQL

[PHP/SQL] Top X (Opgelost)

shibble – 11/01/2010 11:34 (Laatst gewijzigd op 11/01/2010 11:35)
Hallo allemaal,

Ik ben momenteel bezig met een project voor school.
nu heb ik een database met de volgende 3 tabellen:

- Filmpjes
- Plaatjes
- Rating

in de tabel filmpjes & plaatjes heb ik een veld genaamd "tabelname_ratingid" via dat veld haal ik dus de rating gegevens uit de database.
nu moet ik dus de 6 best rated artikelen uit de DB halen, hoe kan ik daarvoor zorgen?

de rating tabel bestaat uit de volgende velden:
ratingid
rating_votes
rating_total_votes
rating_ips

Mvg,

shibble


Pagina:

21 antwoorden

Gesponsorde links
Daisycon - Verdien geld met uw website

Martijn – 11/01/2010 12:49
ik zie dat je een total voting heb? Dan doe je een INNER JOIN op het ratingid en dan het corresponderende id van je filmpjes/plaatjes

shibble – 11/01/2010 14:34
Hmmm ja maar ik heb het op een andere manier

total votes = elke keer als er gevote wordt +1
votes = 2, 5, 1, 1, 3 etcetc

dan explode ik votes en dan ga ik de score uitrekenen.

nu moet ik dus de top 6 hebben maar ik weet niet hoe..
kan je anders wel ff paar screenshots geven hoe me DB eruit ziet..

ArieMedia – 11/01/2010 15:01
shibble schreef:
Hmmm ja maar ik heb het op een andere manier

total votes = elke keer als er gevote wordt +1
votes = 2, 5, 1, 1, 3 etcetc

dan explode ik votes en dan ga ik de score uitrekenen.

nu moet ik dus de top 6 hebben maar ik weet niet hoe..
kan je anders wel ff paar screenshots geven hoe me DB eruit ziet..
Ok, lekker onhandig, Als je het totaal aantal votes meeneemt in je tabel kan je uitrekenen wat de nieuwe score word.

Bijv: Score: 6 Votes: 8
Iemand stemt 10.
Votes = 6x8 = 48
Nieuwe score = (48 + 10) / 7

Martijn – 11/01/2010 15:17
dat is onjuist dan krijg je niet het juiste gemiddelde.

Ik denk dat je dan naar GROUP BY moet gaan, en iets met SUM() oid, iig een stuk lastiger dan je nu hebt

ArieMedia – 11/01/2010 15:40
Martijn schreef:
dat is onjuist dan krijg je niet het juiste gemiddelde.

Ik denk dat je dan naar GROUP BY moet gaan, en iets met SUM() oid, iig een stuk lastiger dan je nu hebt
En waarom krijg je dan niet het juiste gemiddelde?  

shibble – 12/01/2010 09:04
ok thanx 
maar ik snap er nu nog steeds geen hol van 
een artikel ofzo ?:$

Gerard – 12/01/2010 10:29
Laten we dan eerst eens de volgende vraag stellen: "Waarom hebben we een herhalende groep in één veld zitten, terwijl hier een aparte tabel voor zou moeten zijn?".

Eén rating moet gedaan worden op één film/afbeelding. Op deze manier zou je het net zogoed in de film/afbeelding tabel kunnen plaatsen.

shibble – 12/01/2010 10:33 (Laatst gewijzigd op 12/01/2010 10:35)
Ik weet het maar daar gaat het op dit moment niet om...
dus graag op de vraag blijven als het kan..

en hoe ik het nu heb kan ik ook de gevote score bij de juist ip eruit halen..

Youri – 12/01/2010 11:38
Pascal, omdat de gegevens op zijn geslagen als een array moet je gewoon de array sorten, en dan gewoon met een increment de eerste 5 selecteren..

Gerard – 12/01/2010 12:46
Je zult dan alle resultaten uit de database moeten vissen. Daarna moet je per item berekenen wat het gemiddelde is. Daarna moet je dit sorten. Daarna moet je dit tonen.

Als je wel normaliseert dan kan je dit gewoon in SQL afhandelen, met subqueries.

Gesponsorde links


Pagina:

Dit onderwerp is gesloten.
Actieve forumberichten:

© 2002-2012 Sitemasters.be - Regels - Gehost door: Vircon - Laadtijd: 0.028s