---
title: "Personlig räknare?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9254-personlig-räknare"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "crisse6"
published: "2001-04-22T18:04:00.000Z"
updated: "2001-05-03T14:14:00.000Z"
replies: 23
views: 388
page: 1
pages: 2
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/9254-personlig-räknare"
---

# Personlig räknare?

_Sida 1 av 2._

## #1 — crisse6, 2001-04-22T18:04Z

Tjabba!

Hur fixar man en personlig räknare för varje medlem, asså som andra medlemmar kan se när man tex slumpar en medlem typ såhär:

Slumpad medlem:
Kalle Andersson
Ålder: 18
Fakta:
bla bla....
Kalle har varit på denna sida 80 ggr...

fattar ni?

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

## #2 — LarsG, 2001-04-22T18:28Z

En extra kolumn i medlemstabellen som man uppdaterar vid varje inloggning.

```

sql = "update members " & _
"set visits = visits + 1 " & _
" where username = '" & username & "'"

conn.execute sql,,128
```

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

## #3 — Rossifumi, 2001-04-22T18:29Z

Lägg till ett fält i db och uppdatera det varje gång Kalle loggar in :)

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

## #4 — Rossifumi, 2001-04-22T18:30Z

LarsG \>\> Du skall alltid vara värst... exempelkod och allt ;) :e

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

## #5 — crisse6, 2001-04-22T18:37Z

okej, men om jag nu vill baka in detta i min "slumpar-kod" så vet jag inte hur jag ska gå till väga... :q

slumpad.asp:

```
<!-- #include file="adovbs.inc" -->
<%
Set Databas2 = Server.CreateObject("ADODB.Connection")
MdbFilePath2 = Server.MapPath("users.mdb")
Databas2.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Hämta en länk slumpartat ifrån databasen *****
SQL = "select Count(*) AS klo from users"
Set RS_klo = databas2.execute(SQL)
Randomize
Set rstemp = Server.Createobject("ADODB.Recordset")
SQL = "Select * from users"
rstemp.cursorlocation = aduseclient
rstemp.cachesize = 5
rstemp.open SQL, "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath2 & ";"
rstemp.move Int(Rnd*RS_klo("klo"))
%>

<table border="0" cellpadding="4" cellspacing="3" bgcolor="#F7F7E7" style="border-width:0; border-color:black; border-style:solid;">
    <tr>
        <td width="119" align="center"><p><%
If Len(rstemp("bilder")) > 0 then
strBild = "<img src='"&rstemp("bilder")&"'>"
Else
strBild = "<img src='bild1.jpg'>"
End If
Response.write strBild
%>
```

skriver ut namn, username osv... med denna snutt \<%=rstemp("namn")%\>

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

## #6 — LarsG, 2001-04-22T18:49Z

Om din kolumn som innehåller antalet besök heter antalBesok så kan man lägga till:

```

response.write rs("namn") & _
" har varit här " & _
rs("antalBesok") & " gånger <br>"
```

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

## #7 — crisse6, 2001-04-22T19:20Z

men man måste väll baka in denna kod först?

```
sql = "update members " & _
"set visits = visits + 1 " & _
" where username = '" & username & "'"

conn.execute sql,,128
```

och var?

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

## #8 — Rossifumi, 2001-04-22T19:24Z

På din login sida :)

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

## #9 — crisse6, 2001-04-22T19:34Z

varför fungerar inte denna kod:

```
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Updatera besöken *****

Set rs = Server.Createobject("ADODB.Recordset")
sql = "update users " & _
"set visits = visits + 1 " & _
" where username = '" & username & "'"

Databas.execute sql,,128

response.write rs("namn") & _
" har varit här " & _
rs("antalBesok") & " gånger <br>"
%>
```

får detta felet:

```
Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 

[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades. 

/groda/personal.asp, line 12
```

ooops

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

## #10 — @nders, 2001-04-22T19:49Z

du skapar ett recordset, men var är selectfrågan som ska fylla det :q

\[r\]: rad 12 är?

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

## #11 — LarsG, 2001-04-22T19:55Z

Vad heter din kolumn där du lagrar antal besök? Nu förutsätter jag att den heter visits.
Det verkar ha blivit lite ihopblandning mellan olika tabeller. Om du lagrar medlemsid
i session så borde detta vara ok annars så får du ändra de raderna

```
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Updatera besöken *****

sql = "update users " & _
"set visits = visits + 1 " & _
" where id = " & session("medlemsid")

Databas.execute sql,,128

set rs = databas.execute("select namn,visits - 1 from users where id = " & session("medlemsid")
if  Cint(rs("visits") = 1 then
response.write rs("namn") & _
" har varit här " & _
rs("visits") & " gång <br>"
else
response.write rs("namn") & _
" har varit här " & _
rs("visits") & " gånger <br>"
end if
%>
```

128 =\> skapa inget recordset, det byggs ett recordset internt i ADO om man inte anger denna option.

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

## #12 — crisse6, 2001-04-22T20:16Z

min kolum heter antalbesok så jag ändrade det.... men den tycker det är oavslutad strängkonsonant.... + att jag ändrade till session id istället... du ser nog ;)

```
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Updatera besöken *****
sql = "update users " & _
"set antalbesok = antalbesok + 1 " & _
" where id = " & session("id")

Databas.execute sql,,128

set rs = databas.execute("select namn,antalbesok - 1 from users where id = " & session("id")
if Cint(rs("antalbesok") = 1 then
response.write rs("namn") & _
" har varit här " & _
rs("antalbesok") & " gång <br>"
else
response.write rs("namn") & _
" har varit här " & _
rs("antalbesok") & " gånger <br>"
end if
%>
```

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

## #13 — LarsG, 2001-04-22T20:48Z

Okej, jag såg 1 sak

```
set rs = databas.execute("select namn,antalbesok - 1 from users where id = " & session("id")[b])[/b]
```

och 1 till

```
if Cint(rs("antalbesok")[b])[/b] = 1 then
```

Om det inte hjälper, så kan du väl säga vilken rad du får fel på och peka ut den raden!!!

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

## #14 — crisse6, 2001-04-23T16:49Z

ööhh... något är fel????

det uppdateras i databasen oså... men får detta felmess:

```
ADODB.Fields error '800a0cc1' 

ADO kunde inte hitta objektet i mängden som överensstämmer med det begärda namnet eller numret. 

/groda/personal.asp, line 18 

line 18 är denna:
if Cint(rs("antalbesok")) = 1 then
```

konstigt :q

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

## #15 — emission, 2001-04-23T19:31Z

set rs = databas.execute("select namn,(antalbesok - 1) as antalbesok from users where id = " & session("id"))

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

## #16 — crisse6, 2001-04-23T20:24Z

nope, tack emission ändå, men det funkar inte riktigt.... får nu detta felmess:

```
Microsoft OLE DB Provider for ODBC Drivers error '80004005' 

[Microsoft][Drivrutin för ODBC Microsoft Access] Cirkelreferens orsakad av aliaset 'antalbesok' i frågans SELECT-instruktion. 

/groda/personal.asp, line 16
```

rad 16:

```
set rs = databas.execute("select namn,(antalbesok - 1) as antalbesok from users where id = " & session("id"))
```

hela koden:

```
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Updatera besöken *****
sql = "update users " & _
"set antalbesok = antalbesok + 1 " & _
" where id = " & session("id")
Databas.execute sql,,128

set rs = databas.execute("select namn,(antalbesok - 1) as antalbesok from users where id = " & session("id"))
if Cint(rs("antalbesok")) = 1 then
response.write rs("namn") & _
" har varit här " & _
rs("antalbesok") & " gång <br>"
else
response.write rs("namn") & _
" har varit här " & _
rs("antalbesok") & " gånger <br>"
end if
%>
```

he he.... visst é jag jobbig?

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

## #17 — LarsG, 2001-04-23T20:38Z

Okej, om man har ett annat alias

```
set rs = databas.execute("select namn,(antalbesok - 1) as antal from users where id = " & session("id"))
if Cint(rs("antal")) = 1 then
response.write rs("namn") & _
" har varit här " & _
rs("antal") & " gång <br>"
else
response.write rs("namn") & _
" har varit här " & _
rs("antal") & " gånger <br>"
end if
%>
```

hur går det då?

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

## #18 — crisse6, 2001-04-23T21:21Z

f\*n va jobbigt detta är, inget av mina skript funkar idag!

nu får jag detta felmeddelande (det funkar med mig crisse6 att se hur många gånger jag besökt sidan men inte andra)

```
update users set antalbesok = antalbesok + 1 where id = 40 
Körningsfel i Microsoft VBScript error '800a005e' 

Ogiltig användning av Null: 'Cint' 

/groda/personal.asp, line 18
```

kod för sidan:

```
<!-- #include file="adovbs.inc" -->
<!-- #include file="checkb.inc" -->
<html>
<body>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Updatera besöken *****
sql = "update users " & _
"set antalbesok = antalbesok + 1 " & _
" where id = " & session("id")
Response.Write SQL
Databas.execute sql,,128

set rs = databas.execute("select namn,(antalbesok - 1) as antal from users where id = " & session("id"))
if Cint(rs("antal")) = 1 then
response.write rs("namn") & _
" har varit här " & _
rs("antal") & " gång <br>"
else
response.write rs("namn") & _
" har varit här " & _
rs("antal") & " gånger <br>"
end if
%>
<!-- #include file="checkb2.inc" -->
</body>
</html>
```

detta är sjukt!

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

## #19 — LarsG, 2001-04-23T21:38Z

Okej, om du uppdaterar medlemstabellen så att alla har 0 besök (i stället för null )

```

update users set antalBesok = 0
 where antalBesok is null
```

Det finns väl något sätt att kör SQL-frågor direkt i Access så det är väl bara att dunka in den där och testa sen igen.

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

## #20 — crisse6, 2001-05-03T12:45Z

hmmm.... vad är det för fel nu då? jag får inga felmess, men det står att varje person har varit där 2 gånger oavsett om man uppdaterar och sånt... hjälp!

```
<!-- #include file="adovbs.inc" -->

<!-- #include file="checkb.inc" -->
<html>
<body>
<%
Set Databas = Server.CreateObject("ADODB.Connection")
MdbFilePath = Server.MapPath("users.mdb")
Databas.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
'***** Updatera besöken *****
sql = "update users set antalBesok = + 1 where id = " & session("id")
Databas.execute sql,,128

set rs = databas.execute("select namn,(antalbesok + 1) as antal from users where id = " & session("id"))
if Cint(rs("antal")) = 1 then
response.write rs("namn") & _
" har varit här " & _
rs("antal") & " gång <br>"
else
response.write rs("namn") & _
" har varit här " & _
rs("antal") & " gånger <br>"
end if
%>

<!-- #include file="checkb2.inc" -->
</body>
</html>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/9254-personlig-räknare  
Nästa sida: https://www.webforum.nu/amne/asp/9254-personlig-räknare/page2.md
