webForumDet fria alternativet
Logga in / Bli medlem

Toplista

Databaser & SQL

3 svar · 164 visningar · startad av F_I_C

Medlem sedan jan. 200293 inlägg
Trådstart#1

Har gjort ett script där man tippar hur det ska gå i matcherna. Rättningen görs omgång för omgång där det sparas hur många rätt man hade i den omgången.

Jag vill addera ihop antalet rätt för varje person_id och sen skapa en lista med de som har flest antal rätt.
Har kört fast och tänkte att kanske någon lyckas förstå mitt problem och hjälpa mig komma vidare.
Postade denna tråden i "fel" forum tidigare och gör ett försök här.
Kastar med en litet exempel på hur tabellen kan se ut ungefär.

omg |ratt | person_id
1 | 4 | 1
2 | 5 | 1
1 | 3 | 2
2 | 2 | 2
1 | 0 | 3
2 | 6 | 3

Vill alltså få ut person_id 1 som första plats med 9 rätt
person_id 3 på andra plats med 6 rätt osv...

Medlem sedan dec. 200012 464 inlägg
#2
select person_id, sum(ratt) as total
  from tips
 group by person_id
 order by total desc

Flyttas från Mysql

Medlem sedan jan. 200293 inlägg
#3

Tackar tackar, det fungerar perfekt

$read = "select person, sum(ratt) as total from tipset_tips group by person order by total desc LIMIT 0,10";
$querys = mysql_query($read)or die("Det blev något fel vid läsningen från databasen");
while ($rad=mysql_fetch_array($querys)) {
$person=$rad["person"];

så gör jag för att plocka ut de 10 med flest rätt person id.
Kan dock inte få fram så jag kan skriva ut hur många rätt respektive användare har, borde inte vara svårt.

Medlem sedan dec. 200012 464 inlägg
#4

Nej, det är inte svårt.

$total = $rad["total"];
257 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)