webForumDet fria alternativet

Count och Select. Varför?

5 svar · 212 visningar · startad av Kristianstad

KristianstadMedlem sedan dec. 2002841 inlägg
#1

Hej!
I menyn på en hemsida har jag skrivit antalet som är online. (denna kod ligger i en includefil).
På en sida kan man se vilka som är online; onlinelista.

I menyn använder jag COUNT(*) och i onlinelistan listar jag upp alla med en vanlig SELECT.

Men! Cirka 90% av gångerna man besöker sidan händer följande:
Det står på sidan: Just nu är det 14 online. Då man i samma sekund besöker onlinelistan kan man se 2 stycken namn där. Alltså fel!

Hur kommer detta sig? Koden för COUNT(*) ligger i en includefil. Kan det spela någon roll? Tar den inte färskt material från includefilen?

Vad kan det vara som är galet?

cyprysMedlem sedan dec. 20003 563 inlägg
#2

Hmm, hur ser WHERE-satsen ut?

KristianstadMedlem sedan dec. 2002841 inlägg
#3

Count-grejen ser ut så här:

SELECT COUNT(*) FROM Online

Select-grejen ser ut så här:

SELECT sSida, ID, sID, Tid FROM Online WHERE Left(sID,4)<>'gäst' ORDER BY sID

och

SELECT sSida, ID, sID, Tid FROM Online WHERE Left(sID,4)='gäst' ORDER BY sID
cyprysMedlem sedan dec. 20003 563 inlägg
#4

Pröva att sätta samma villkor för båda satserna är en start ;)

SELECT COUNT(*) FROM Online WHERE Left(sID,4)<>'gäst'
KristianstadMedlem sedan dec. 2002841 inlägg
#5

Nämen den ena satsen där jag visar allt är <>'gäst' (alla som är inloggade) och den andra är ='gäst' (alla som inte är inloggade).
Och jag vill ha COUNT(*) på alla. Därmed behöver jag ju ingen WHERE i COUNT-satsen.

Eller är jag ute och reser?

LarsGMedlem sedan dec. 200012 464 inlägg
#6

varför har du två select-satser för att visa vilka som är online?

Utför gäst-kontrollen i ASP

Hur skriver du ut online-listan?

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)