webForumDet fria alternativet

En räknare

ASP

6 svar · 443 visningar · startad av Vinnaren

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

Hej

Behöver en slags räknare som räknar hur många det är som har läst artiklen.
Tabellen heter artiklar och kolumnen heter last.

Databaskopplingen

<%...%>
<%
Set Conn = Server.CreateObject("ADODB.Connection") 
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("../../db/databas.mdb")&";"

Set news = Server.CreateObject("ADODB.Recordset")

Addera = "SELECT * FROM artiklar WHERE id = " &Request.QueryString("visa")
news.Open Addera, Conn, 1, 2
%>

Tacksam för all hjälp jag kan få :stud

Medlem sedan jan. 20023 327 inlägg
#2

Du får göra en update efter att du hämtat artikeln. Plussa på värdet i kolumnen läst med 1.

Medlem sedan dec. 2001873 inlägg
#3

Lägg till ett fält i fält i tabellen som använder för att lagra det antal gånger artikeln visats. Varje gång du hämtar artikeln med din ovanstående kod tar du värdet från det "antal gånger visat" fältet och plusar det med ett.
Sedan tar du det nya värdet och uppdaterar "antal gånger visats" fältet med det nya värdet...

red/ shicshh! To slow... :)

Medlem sedan sep. 2005833 inlägg
#4

har provat med

<%
x = Request.QueryString("visa")
Conn.Execute("update artiklar set last = last + 1 where id = " & CLng(x))
%>

men ingenting sparas i databasen :S

Medlem sedan juni 200032 967 inlägg
#5

Se till att fältinnehållet är 0 innan du försöker dig på att lägga på 1.
NULL + 1 kanske inte blir så bra.

Medlem sedan maj 200010 687 inlägg
#6

Går ju att skriva:
last = COALESCE(last, 0) + 1

Medlem sedan juni 200032 967 inlägg
#7

Mja, eventuellt. Jag är dock osäker på om COALESCE finns i Jet SQL. Kanske får man då skriva så här för Access:

last = IIF(last IS NULL, 1, last+1)

mvh

272 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
137 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)