---
title: "Visa betyg som bilder."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/93051-visa-betyg-som-bilder"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "ConnyFox"
published: "2003-12-19T03:20:21.000Z"
updated: "2003-12-22T13:19:53.000Z"
replies: 16
views: 589
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/93051-visa-betyg-som-bilder"
---

# Visa betyg som bilder.

## #1 — ConnyFox, 2003-12-19T03:20Z

Jag har 3st bilder, en full stjärna, en halvfull stjärna och en tom stjärna.

Finns det något script eller funktion som kan ta ett medelbetyg på kanske 3,6 och göra om det till 3 fulla stjärnor, en halvfull och en tom osv..

och hur tycker ni jag skall lösa det i databasen, en tabell där alla röster lagras och sedan plocka ut och göra ett medel.

Eller en kolumn med totalt antal poäng, och en med antal röster och räkna ut det så? känns som att alternativ nr2 borde vara det som tar minst på databasen eller?

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

## #2 — Jesper T, 2003-12-19T08:11Z

Kan man tänka sig att det högsta värdet är tio(10) så kanske det blir enklare att trixa med bilderna.
Alltså: ett ger en halv stjärna, två ger en hel stjärna osv...

```
SELECT AVG(betyg) AS medel FROM tabell

Response.write left("0"& RS(0),2)
```

Det borde inte vara så intressant att spara varenda röst.
Tycker att alternativ två borde vara smartare.

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

## #3 — ConnyFox, 2003-12-19T08:39Z

ok nu skulle högsta vara 5 vilket ger 10 olika möjligheter (10 halva stjärnor)

och jag kör på alternativ nr2 jag har en kolumn med totalt antal poäng. (man kan bara ge hela poäng 1,2,3,4,5)
och en kolumn med antal röster.

hur bär jag mig då åt?

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

## #4 — Jesper T, 2003-12-19T08:56Z

Ex. fem stycken radiobuttons.
Där "Radiobutton 1" ger två poäng, "Radiobutton 2" ger fyra poäng osv. Då kommer det ju att se ut som att betygsskalan går mellan ett och fem poäng.

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

## #5 — ConnyFox, 2003-12-19T09:29Z

Aha joo jaa d låter vettigt men jag har fortfarande inte förstått hur jag skall göra om medelvärdet till bilderna, det var väll det som var den egentliga frågan ;)

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

## #6 — Jesper T, 2003-12-19T12:38Z

Vad har du för databas?
Jag vet inte om detta funkar i mySql men annars så skulle ju detta kunna vara en metod: (OBS! Kvasikod)

```
...
SELECT AVG(betyg) AS medel FROM tabell
...

Response.write "<img src=""Star_"& left("0"& RS("medel"),2) &".gif"">"
```

Då är det meningen att om medel är ex.4
så kommer det att stå: \<img src="star_08.gif"\>
Alltså du får skapa tio stycken bilder, var av den första endast har tomma stjärnor, den andra har en halvt ifylld stjärna och resten är tomma, den tredje har en hel stjärna ifylld och fyra tomma osv.

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

## #7 — ConnyFox, 2003-12-19T14:42Z

Mjaa d va ju inte riktigt vad jag tänkte.. jag har 3st bilder en full, en halvfull och en tom stjärna.

Det borde ju gå att lösa med en funktion av något slag.

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

## #8 — Jesper T, 2003-12-19T14:51Z

Ja, visst med lite loopar och så vidare.
Men det blir väl mycket krångligare.

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

## #9 — Sebbe, 2003-12-19T14:58Z

Kanske såhär? Otestad kod.

```
SELECT AVG(betyg) FROM tabell

--------------------------------------------

intBetyg = Round(objRS(0), 1)

If Int(intBetyg) < intBetyg Then
  sngBetygOver = CSng(intBetyg - Int(intBetyg))

  If sngBetygOver < 0.3 Then
    intStars = Int(intBetyg)
  ElseIf sngBetygOver => 0.3 AND sngBetygOver < 0.8 Then
    intStars = Int(intBetyg) + 0.5
  ElseIf sngBetygOver => 0.8 Then
    intStars = Int(intBetyg) + 1
  End If
Else
  intStars = Int(intBetyg)
End If

If Int(intStars) < intStars Then
  intStarsOver = intStars - Int(intStars)

  If Int(intStars) > 0 Then
    For i = 1 To intStars
      Response.Write("<img src=""hel.gif"">")
    Next
  End If

  Response.Write("<img src=""halv.gif"">")
  intTomma = 5 - (Int(intStars) + 1)
Else
  If intStars > 0 Then
    For i = 1 To intStars
      Response.Write("<img src=""hel.gif"">")
    Next
  End If

  intTomma = 5 - intStars
End If

If intTomma > 0 Then
  For j = intTomma To 1 Step - 1
    Response.Write("<img src=""tom.gif"">")
  Next
End If
```

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

## #10 — ConnyFox, 2003-12-20T02:38Z

Det där funkade helt underbart bra :D

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

## #11 — ConnyFox, 2003-12-20T02:41Z

Bara en fråga.. går det att få scriptet att fungera ungeför såhär..

strpoang = rs(0)
response.write makestars(strPoang)

dvs funktionen ligger längst upp på sidan och så kallar man på den när man behöver den?

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

## #12 — Sebbe, 2003-12-20T11:16Z

Jo, det borde väl funka att göra så här:

```
Sub WriteStars(intBetyg)
  If Int(intBetyg) < intBetyg Then
    sngBetygOver = CSng(intBetyg - Int(intBetyg))

    If sngBetygOver < 0.3 Then
      intStars = Int(intBetyg)
    ElseIf sngBetygOver => 0.3 AND sngBetygOver < 0.8 Then
      intStars = Int(intBetyg) + 0.5
    ElseIf sngBetygOver => 0.8 Then
      intStars = Int(intBetyg) + 1
    End If
  Else
    intStars = Int(intBetyg)
  End If

  If Int(intStars) < intStars Then
    intStarsOver = intStars - Int(intStars)

    If Int(intStars) > 0 Then
      For i = 1 To intStars
        Response.Write("<img src=""hel.gif"">")
      Next
    End If

    Response.Write("<img src=""halv.gif"">")
    intTomma = 5 - (Int(intStars) + 1)
  Else
    If intStars > 0 Then
      For i = 1 To intStars
        Response.Write("<img src=""hel.gif"">")
      Next
    End If

    intTomma = 5 - intStars
  End If

  If intTomma > 0 Then
    For j = intTomma To 1 Step - 1
      Response.Write("<img src=""tom.gif"">")
    Next
  End If
End Sub

WriteStars Round(objRS(0), 1)
```

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

## #13 — ConnyFox, 2003-12-20T11:20Z

Underbart ;) ska testa det!

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

## #14 — ConnyFox, 2003-12-20T12:42Z

efter lite fixande och joxande fick jag det att funka. helt perfekt! Tack!

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

## #15 — ConnyFox, 2003-12-20T14:02Z

tyvärr hittade jag ett litet fel.. om det inte finns några röster och inte några poäng så blir det 0 som input och då får jag felmeddelandet spill..

den måste kunna visa alla tomma stjärnor när ingen röstat.

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

## #16 — Sebbe, 2003-12-20T14:05Z

OK, då lägger vi till en If-sats.

```
Sub WriteStars(intBetyg)
  If intBetyg > 0 Then
    If Int(intBetyg) < intBetyg Then
      sngBetygOver = CSng(intBetyg - Int(intBetyg))

      If sngBetygOver < 0.3 Then
        intStars = Int(intBetyg)
      ElseIf sngBetygOver => 0.3 AND sngBetygOver < 0.8 Then
        intStars = Int(intBetyg) + 0.5
      ElseIf sngBetygOver => 0.8 Then
        intStars = Int(intBetyg) + 1
      End If
    Else
      intStars = Int(intBetyg)
    End If

    If Int(intStars) < intStars Then
      intStarsOver = intStars - Int(intStars)

      If Int(intStars) > 0 Then
        For i = 1 To intStars
          Response.Write("<img src=""hel.gif"">")
        Next
      End If

      Response.Write("<img src=""halv.gif"">")
      intTomma = 5 - (Int(intStars) + 1)
    Else
      If intStars > 0 Then
        For i = 1 To intStars
          Response.Write("<img src=""hel.gif"">")
        Next
      End If

      intTomma = 5 - intStars
    End If

    If intTomma > 0 Then
      For j = intTomma To 1 Step - 1
        Response.Write("<img src=""tom.gif"">")
      Next
    End If
  Else
    For i = 1 To 5
      Response.Write("<img src=""tom.gif"">")
    Next
  End If
End Sub
```

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

## #17 — ConnyFox, 2003-12-22T13:19Z

har nu insett att funktionen buggar ur totalt när man kör den i en loop, för d första så fungerar inte loopen som den skall och om om värdet är annat än 5 så funkar sidan inte alls utan bara laddar och laddar tills processen dllhost har sugit upp allt minne och datorn låser sig :D:D:D

Mer info om min kod finns här : 
<http://www.webforum.nu/showthread.php?s=&threadid=91117&forumid=22>

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/93051-visa-betyg-som-bilder
