probs med "läst antal gånger"

ASP

8 svar · 193 visningar · startad av laidback

Medlem sedan maj 2001797 inlägg
Trådstart#1

har scannat arkivet efter sätt att skriva ut hur många gånger ett specifikt inlägg har visats.
kom fram till att i inläggstabellen lägga till ett fält exvis "hits" och sedan räkna upp detta varje gång inlägget visas, med en update.
("update tabellen set fältet=fältet+1 where osv" rekommenderades här

men.. om jag vill ha detta på den sidan som visar inlägget (går det öht?) istället för som någon sa "när man klickar på länken till inlägget?

så här ser koden som hämtar själva inlägget ut

<% View = "SELECT * FROM k_messages WHERE ID = " & Request.QueryString("messID") & " "
RecSet.Open View, Connect, adOpenStatic, adLockOptimistic
%>

kan jag peta in update-delen där i på något smidigt sätt?

Medlem sedan jan. 2001101 inlägg
#2

1. Använd inte adovbs.inc! Istället för "adOpenStatic, adLockOptimistic" skriver du istället "3, 3".

2.
Fyll på med

RecSet("Hits") = RS("Hits") + 1
RecSet.Update

Medlem sedan maj 2001797 inlägg
#3

1. eh. sure thing. kan du förklara varför?

2. hm. det inte händer ett dugg. den lägger inte till något alls i hits-fältet.

nu ser det ut

<% View = "SELECT * FROM k_messages WHERE ID = " & Request.QueryString("messID") & " "
RecSet.Open View, Connect, 3,3
 RecSet("hits") = RecSet("hits") + 1
RecSet.Update 
%>

och en bit ner

läst <% =RecSet("hits")%> gånger
Medlem sedan aug. 20012 349 inlägg
#4

1. adovbs.inc är en fil med en hiskelig massa rader (300 eller nått) det innebär att 300 rader extra läses in på varje sida. Det är en massa extra bytes för servern att processa, vilket gö det långsammare.

Och allt det för att man normalt sett använder 2- 4 variabler i den.

Förslagsvis tar du antingen bort alla constanter i adovbs.inc som du inte använder, eller så skiter du i den och använder siffrorna direkt.

2. Eh, vet inte. Men kan du inte bara skriva ut <%=RS("Hits")+1%> och uppdatera sen eller nått.

Medlem sedan maj 2001797 inlägg
#5

1. aha. i see. men om jag väljer att inte modda den filen, kan jag helt enkelt låta bli att inkludera den och bara skriva ut siffrorna? vad gör eg dessa siffror? och varför?

2. det gick inte så bra.
Type mismatch: '[string: "hits"]'
blir felmeddelandet om jag gör som du föreslog ovan.

Medlem sedan dec. 200012 464 inlägg
#6

I det hör fallet så bestämmer siffrorna vilken cursortyp och låstyp du använder för ditt recordset.

Du kan definiera de värden du använder som egna konstanter för att öka läsbarheten

const adExecuteNoRecords = 128

(Det är den enda jag kan utantill.)

Kan du visa lite kod där du får ditt fel.

Medlem sedan maj 2001797 inlägg
#7

1. tack. något bra förslag på vart jag kan läsa mig till mer info om detta fenomen?

2. koden är som i inlägg nr 2
dvs

<% View = "SELECT * FROM k_messages WHERE ID = " & Request.QueryString("messID") & " "
RecSet.Open View, Connect, 3,3
RecSet("hits")+1
RecSet.Update 
%>

enligt mrblonde

innan

<% View = "SELECT * FROM k_messages WHERE ID = " & Request.QueryString("messID") & " "
RecSet.Open View, Connect, 3,3
 RecSet("hits") = RecSet("hits") + 1
RecSet.Update 
%>

och för att visa det

läst <% =RecSet("hits")%> gånger
Medlem sedan dec. 200012 464 inlägg
#8

Här kan du hitta allt möjligt om ADO
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmscadomethods.asp ?frame=true&hidetoc=true

Version 2 borde fungera om du lägger till

<% View = "SELECT * FROM k_messages WHERE ID = " & Request.QueryString("messID") & " "
RecSet.Open View, Connect, 3,3
if isnull(RecSet("hits")) then
  recset("hits") = cint(1)
else
RecSet("hits") = clng(RecSet("hits")) + 1
end if
RecSet.Update 
%>

Jag tror nog att mrblonde menade att du i din utskrift skulle skriva

läst: <% =recset("hits")+1 %>
Medlem sedan maj 2001797 inlägg
#9

oh. tack. ska se om det bringar lite klarhet...

oj, jag missförstod nog mrblonde rätt ordentligt då.. :r

men nu fungerar det! härligt!
tack för hjälpen!

254 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)