webForumDet fria alternativet

mysql toplista

7 svar · 636 visningar · startad av alioooop

alioooopMedlem sedan feb. 2008120 inlägg
#1

hej
det är så att jag försöker göra en top10 lista men går långt ifrån bra!
snälla hjälp mig någon!

det här är mina tabeller:

film:
------------------------------------
ID | Filmnamn | Filmlängd | osv
------------------------------------
1 | namn1 | 120 | osv
------------------------------------
2 | namn2 | 123 | osv
------------------------------------
3 | namn3 | 156 | osv
------------------------------------
4 | namn4 | 120 | osv
------------------------------------

ratings:
------------------------------
ID | param | points | ip
------------------------------
1 | 1 | 2 | 123
------------------------------
2 | 1 | 5 | 122
------------------------------
3 | 2 | 3 | 123
------------------------------
4 | 3 | 4 | 156
------------------------------

och det här är min kod:

$result = mysql_query("
SELECT TOP 10 film.Filmnamn, Avg(ratings.points) AS Medelbetyg
FROM film INNER JOIN ratings ON film.ID = ratings.param
GROUP BY film.Filmnamn
ORDER BY Avg(ratings.points) DESC;
") or die(mysql_error());

while($row = mysql_fetch_array($result))
  {
 
    echo $row["film.Filmnamn"] . " - ". $row['Avg(points)'];
	echo "<br />";

  }

som ni ser i rating tabellen så lagrar param filmID så jag ska kunna samla alla med just det ID så jag kan räkna ut medelvärde och sedan sortera dom med högst medelvärde i en top10 lista

hur ska jag göra?
hjälp mig snälla för är ganska bråttom

effataMedlem sedan apr. 2008137 inlägg
#2

Ta bort TOP 10 och lägg till LIMIT 10 sist så ska det funka.
Jag skulle också byta till att gruppera på film.ID av prestandasjäl.

alioooopMedlem sedan feb. 2008120 inlägg
#3

effata skrev:

Ta bort TOP 10 och lägg till LIMIT 10 sist så ska det funka.
Jag skulle också byta till att gruppera på film.ID av prestandasjäl.

tack så hemskt mkt =) men nu äre ett nytt problem :D hur kommer jag åt medelvärdet i utskriften =) det kommer inte fram nått när jag använder mig av

echo $row\["Filmnamn"\] . " - ". $row\['ratings.Avg(points)'\];

eller filmnamnet skrivs ut men inte medelvärdet :)

UrMeMedlem sedan apr. 2001762 inlägg
#4

edit glöm det tänkte fel :)

spangoMedlem sedan juni 20008 205 inlägg
#5

Du ger ju medelvärdet ett alias, Medelbetyg. Använd det.

alioooopMedlem sedan feb. 2008120 inlägg
#6

spango skrev:

Du ger ju medelvärdet ett alias, Medelbetyg. Använd det.

som sagt är inte så bra på det här :D hur kan man skriva ut Medelbetyg då? och innehåller inte den mer än bara avg()?:P

spangoMedlem sedan juni 20008 205 inlägg
#7

alioooop skrev:

hur kan man skriva ut Medelbetyg då?

På samma sätt som du skriver ut film.Filmnamn :)

alioooopMedlem sedan feb. 2008120 inlägg
#8

jag löste det :D tack för all hjälp

127 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)