webForumDet fria alternativet

sortera efter högsta snittet

Databaser & SQLur Databashanterare & SQL

4 svar · 215 visningar · startad av kittlos

Medlem sedan sep. 2002205 inlägg
Frågan#1

Jag har en tabell comments som är kopplad till varje artikel, som jag vill sortera högst snitt på variabeln grade. Dessutom vill jag bara sortera kommentarer på de artiklar som fått minst 5 kommentarer.

Jag har snott följande kod från min föregångare för att plocka ut snittbetyget för varje artikel (i php)

@$result = mysql_query("select ROUND(AVG(grade),1) from comments where article_id='$article_id'");
@$average_grade = mysql_result($result,0,"ROUND(AVG(grade),1)");

Men här sorteras inte efter högst snitt, och jag är också osäker på hur jag bäst filtrerar bort artiklar med mindre än 5 kommentarer.

Medlem sedan dec. 200012 464 inlägg
#2
$result = mysql_query(
"select article_id, AVG(grade+0.0) as avgGrade 
 from comments 
 group by article_id
having count(*) >= 5 
order by avgGrade desc ") or die (mysql_error());
while ( $row = mysql_fetch_row($result)) {
echo $row["article_id"] . ":"  . $row["avgGrade"] . "<br>";
}

Varför har du @ i anropen?

Medlem sedan sep. 2002205 inlägg
#3

ska testa det.
Jag vet inte varför det är @, har som sagt snott koden. Har ställt frågan om @ i php-forumet. Känner mig hemskt okunnig just nu...

Medlem sedan maj 20002 993 inlägg
#4

@ framför en funktion gör att inga felmeddelanden skrivs ut.

/red. Ditt @ satt visst framför variabeln och inte funktionsanropet.

Medlem sedan sep. 2002205 inlägg
#5

Det funkade utmärkt!

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