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
------------------
Dekt är ingen, alla är Dekt
8 svar · 170 visningar · startad av laidback
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?
------------------
I just lay back and let the big beat lead me
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
------------------
Dekt är ingen, alla är Dekt
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
------------------
I just lay back and let the big beat lead me
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.
------------------
National Blonde Day!
Alle ihre Basis ist uns gehört.
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.
------------------
I just lay back and let the big beat lead me
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.
------------------
essentitia preter non sans multiplicandum
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
------------------
I just lay back and let the big beat lead me
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 %>
------------------
essentitia preter non sans multiplicandum
[Redigerat av LarsG den 08 nov 2001]
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!
------------------
I just lay back and let the big beat lead me