---
title: "Kod för ett s.k. rating script?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/47918-kod-för-ett-s-k-rating-script"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "His Divine Shadow"
published: "2002-07-14T22:01:51.000Z"
updated: "2002-07-16T17:32:46.000Z"
replies: 17
views: 469
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/47918-kod-för-ett-s-k-rating-script"
---

# Kod för ett s.k. rating script?

## #1 — His Divine Shadow, 2002-07-14T22:01Z

Jag funderar på hur jag ska göra ett script där man kan betygsätta en bok/artikel(i detta fall en bok), man ska kunna välja 1-5 stjärnor, detta ska då läggas in i en databas, där sparas:
\-ID (vanlig räknare)
\-BokID (finns en annan tabell som har alla böcker redan)
\-Rating (1-5, torde jag lägga numeriskt eller vanligt sträng?)
\-UserID(för namnet på den som röstade)

Men hur gör jag då en kod som tar Rating från alla inlägg som har samma BokID(som kommer från en querystring) och går igenom alla och räknar ut en "average rating"?

Så och om en lägger 5 och en annan 1 då blir svaret 2.5

Det finns ju sånt på Amazon.com t.ex.
Men hur gör jag en sån kod?

Permalänk: https://www.webforum.nu/p/47918

## #2 — solbulle, 2002-07-14T22:08Z

Hur får du 1 + 5 / 2 till 2.5 ?

Lägg in ett numeriskt värde!

Sen när du plockar ut datat med hjälp av BokId kan du väl antingen göra en count (el vad det heter) direkt isql-satsen eller addera ihop allt i en loop.
Detta delar du sedan med antalet poster.

Permalänk: https://www.webforum.nu/p/721363

## #3 — His Divine Shadow, 2002-07-15T06:01Z

> **solbulle skrev:**
>
> Hur får du 1 + 5 / 2 till 2.5 ?

Jag tänkte att värdet mitt emellan 1 och 5 så är 2.5

Permalänk: https://www.webforum.nu/p/721444

## #4 — SilvioF, 2002-07-15T06:30Z

Medelvärdet av 6 (1+5) är väl ändå 3. I alla fall om min matte stämmer.

Permalänk: https://www.webforum.nu/p/721448

## #5 — Jesper T, 2002-07-15T07:00Z

Ehhh, jag tror att man kan förstå principen ändå.

Permalänk: https://www.webforum.nu/p/721455

## #6 — His Divine Shadow, 2002-07-15T07:27Z

> **SilvioF skrev:**
>
> Medelvärdet av 6 (1+5) är väl ändå 3. I alla fall om min matte stämmer.

Jo, det var jag som tänkte fel faktiskt.

Permalänk: https://www.webforum.nu/p/721464

## #7 — LarsG, 2002-07-15T09:46Z

```
query = "select avg(rating+0.0),bokId from rating group by bokId"
```

Så får du medelvärdet för alla böcker

Permalänk: https://www.webforum.nu/p/721559

## #8 — His Divine Shadow, 2002-07-15T09:57Z

> **LarsG skrev:**
>
> ```
> query = "select avg(rating+0.0),bokId from rating group by bokId"
> ```
>
> 
> 
> Så får du medelvärdet för alla böcker

Ah, tack, det såg ju enkelt ut :)

Detta är väl bara en vanlig SQL sats så jag kan väl lägga till
Where BokID = '"& Request("Bok") &"'
för att specifiera böcker?

Hur hämtar jag värdet förresten?
\<%=avg(0)%\> kanske?
Man använder ju det för COUNT så... Ja gissar nu bara.

Permalänk: https://www.webforum.nu/p/721571

## #9 — LarsG, 2002-07-15T10:53Z

Om du bara har en bok så behövs ingen group by 

Då blir det bara

```
q = "select avg(rating+0.0) from rating where bokId = " & request.form("bok")
set avg = connect.exexute(q)
response.write avg(0)
```

(Om du har både where och group by så skall where anges före group by.)

Permalänk: https://www.webforum.nu/p/721611

## #10 — His Divine Shadow, 2002-07-15T11:22Z

> **LarsG skrev:**
>
> Om du bara har en bok så behövs ingen group by

Nja, det blir nog nära 100 böcker ;)

Permalänk: https://www.webforum.nu/p/721617

## #11 — His Divine Shadow, 2002-07-15T17:15Z

Hur får jag jämmna nummer? Jag får resultat som 3.6777777 nu.
Funkar inte med min kod som jag använder för att visa resultatet i stjärnor.
Förresten, jag tycker det ser lite klumpigt ut, finns det nått bättre sätt?

```
					<%If avg(0) = "1" THEN %>
					<img src="images/onepoint.gif">
					<%END IF%>
					<%If avg(0) = "2" THEN %>
					<img src="images/twopoint.gif">
					<%END IF%>
					<%If avg(0) = "3" THEN %>
					<img src="images/threepoint.gif">
					<%END IF%>
					<%If avg(0) = "4" THEN %>
					<img src="images/fourpoint.gif">
					<%END IF%>
					<%If avg(0) = "5" THEN %>
					<img src="images/fivepoint.gif">
					<%END IF%>
```

Permalänk: https://www.webforum.nu/p/721794

## #12 — solbulle, 2002-07-15T17:34Z

Döp dina bilder till 1.gif osv (eller 1point.gif) typ ock kör:

```
snitt = round(avg(o))

If snitt > 0 then
response.write "<img src=""images/" & snitt & ".gif"">"
End if
```

Permalänk: https://www.webforum.nu/p/721804

## #13 — His Divine Shadow, 2002-07-15T18:12Z

> **solbulle skrev:**
>
> Döp dina bilder till 1.gif osv (eller 1point.gif) typ ock kör:
> 
>
>
> ```
> snitt = round(avg(o))
> 
> If snitt > 0 then
> response.write "<img src=""images/" & snitt & ".gif"">"
> End if
> ```

Ah, funkar fint, fast jag tror jag ska tillåta en decimal, kan det göra så att det rundar antingen till ett helt tal eller x.5?
Alltså, så här:
1
1\.5
2
2\.5
3
3\.5
4
4\.5
5

Permalänk: https://www.webforum.nu/p/721827

## #14 — His Divine Shadow, 2002-07-16T12:34Z

Om någon är intresserad av slutresultatet kom till min hemsida och se på "Novel Chronology" :)

<http://hisshadow.123hostnow.com/>

Permalänk: https://www.webforum.nu/p/722291

## #15 — solbulle, 2002-07-16T15:09Z

Ursäkta språket, men "skitsnyggt" tycker jag.

(\*känner mig lite delaktig\* ;) )

Permalänk: https://www.webforum.nu/p/722351

## #16 — Jesper T, 2002-07-16T17:09Z

Kan man inte bara göra ngt liknande istället?

snitt = left(avg(o)),1)
response.write "\<img src=""images/" & snitt & "\_star.gif""\>"

Och döpa stjärnorna till 0_star.gif, 1_star.gif osv.

Permalänk: https://www.webforum.nu/p/722367

## #17 — solbulle, 2002-07-16T17:30Z

Eh? Då blir det väl inte så bra avrundat eller?

3,9 -\> 3 ???

Permalänk: https://www.webforum.nu/p/722374

## #18 — Jesper T, 2002-07-16T17:32Z

Nja, visst svinn får man ju alltid räkna med... ;)

Permalänk: https://www.webforum.nu/p/722376

---

Tråden på webben: https://www.webforum.nu/amne/asp/47918-kod-för-ett-s-k-rating-script
