webForumDet fria alternativet

Visa vad som ändrats sedan senaste inloggningen..

Databaser & SQL

7 svar · 595 visningar · startad av Fredde Mannen

Medlem sedan nov. 20014 054 inlägg
Frågan#1

.. hur skall man gå tillväga för detta.

I dagsläget finns i alla fall all data för att uppnå detta, men kommer inte riktigt fram till hur jag bör göra.

Mitt tanke sätt är följande:
1 ) Ta reda på senaste inloggningen (dvs den innan den absolut senaste), den andra i kön kan man väl säga..

2 ) Ta reda på vilka saker som har ett datum som finns mellan "senaste inloggningen" och Nu.

Då kommer den slutgiltiga grejen, hur bör jag göra för att få fram denna "senaste inloggningen"? dvs. näst senaste inloggningen.

Medlem sedan sep. 2004828 inlägg
#2

SELECT inloggning FROM tb_UserData ORDER BY inloggning DESC LIMIT 1,1

Hämtar ETT datum, det näst senaste.

SELECT * FROM tabell WHERE datum BETWEEN current_timestamp AND inloggning
hämtar allt som hänt från den förra inläggningen, till nu. current_timestamp kan du ju byta mot ett annat datum om du vill.

Medlem sedan nov. 20014 054 inlägg
#3

StefanBergfeldt skrev:

SELECT inloggning FROM tb_UserData ORDER BY inloggning DESC LIMIT 1,1

Hämtar ETT datum, det näst senaste.

SELECT * FROM tabell WHERE datum BETWEEN current_timestamp AND inloggning
hämtar allt som hänt från den förra inläggningen, till nu. current_timestamp kan du ju byta mot ett annat datum om du vill.

Använder inte MySQL btw använder SQL-Server.

Men här kom jag nog på det:

SELECT MAX(INL_INLOGGAD_TID) FROM T_INL_INLOGGNING where
INL_INLOGGAD_TID < (SELECT MAX(INL_INLOGGAD_TID) FROM T_INL_INLOGGNING where INL_PER_ID=1)
AND INL_PER_ID=1
Medlem sedan aug. 2003480 inlägg
#4

Tala gärna om hur du får till detta :)

Medlem sedan dec. 200012 464 inlägg
#5

Flyttas från ASP

Medlem sedan nov. 20014 054 inlägg
#6

Biasse skrev:

Tala gärna om hur du får till detta :)

Okei. Det är så här:

Jag har tre tabeller, säg att de heter: Sidor och Anvandare_Sidor

SELECT s.Titel as SidaTitel,
s.Andrad as SidaAndrad,
(SELECT MAX(INLOGGAD) FROM INLOGGNING where
		INLOGGAD < (SELECT MAX(INLOGGAD) FROM INLOGGNING where anvid=@anvid) AND anvid=@anvid) as Senastinloggad
 from sidor s, anvandare_sidor sa
where s.id = sa.sid and sa.id = @anvid

Då får man ju ut när personen var inloggad gången innan absolut senast inloggningen i Senastinloggad.

Då kan jag i ASP göra en koll om SidaAndrad > Senastinloggad, och då kan jag markera vilka av de uthämtade sidorna i listan som har ändrats mellan inloggningen förra veckan och den idag.

Typ ex.

<%
Dim bold

'.. kod.. 

if cdate(rs.Fields("SidaAndrad")) > rs.Fields("Senastinloggad") then
 bold = "<strong>" & rs.Fields("SidaTitel") & "</strong>"
else
 bold = rs.Fields("SidaTitel")
end if

response.write bold
%>

Eftersom jag ville inte bara hämta de som var mellan ett visst intervall, utan jag ville hämta samtliga och sedan kontrollera vilka av dem som hade ändrats mellan detta intervall.

Medlem sedan juli 20003 825 inlägg
#7

Alltså... Kanske jag inte förstår problemet, men går det verkligen inte att lösa på ett enklare sätt!?

Jag tänker, varje gång en person loggar in kan du ju fixa in ett aktuellt datum + tid i en sessionsvariabel.

Sen innan du skriver sidans titel, bara jämför du denna sessionsvariabel med datumet för respektive sida.

if session("Senastinloggad")) > rs.Fields("Senastinloggad") then ...

Are you with!?

****
Det kanske finns någon annan poäng med det du gör.

Medlem sedan juli 20003 825 inlägg
#8

Okei. Det är så här:

Jag har tre tabeller, säg att de heter: Sidor och Anvandare_Sidor

Hehe... Det är humor! :-)

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)