Hej, gör ett datumfält till i databasen som uppdateras med now() varje gång någon svarar. Sedan sorterar du efter det fältet istället.
mvh Jörgen :)
------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.
8 svar · 358 visningar · startad av bassebhu
Hej! Jag har ett forum som jag laddat ner på aspsidan.nu. Där hamnar grund-inläggen på forum.asp och svaren på read.asp.
Nu vill jag att det på forum.asp ska placera senast uppdaterade ämnet överst. Alltså att den inte ordnar efter senast skapade tråd utan senast uppdaterade tråd.
Här är koden för att visa grundinläggen på forum.asp:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
connect.open "DSN=data;UID=;PWD="Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select * From forum WHERE REF_ID = 0 ORDER BY DATUM DESC"
RecSet.Open Addera, Connect, 3,3
X=0
DO UNTIL X=25 OR RecSet.EOF 'nytt = "no"
Set RecSet2 = Server.CreateObject("ADODB.Recordset")
Addera2 = "Select DATUM From forum WHERE REF_ID = " &RecSet("ID")
RecSet2.Open Addera2, Connect, 3,3DO UNTIL RecSet2.EOF OR nytt = "yes"
IF RecSet2("DATUM") > NOW - 1 THEN
nytt = "yes"
END IFRecSet2.MOVENEXTLOOP
RecSet2.CLOSE
%>
help please
mvh: basse
Hej, gör ett datumfält till i databasen som uppdateras med now() varje gång någon svarar. Sedan sorterar du efter det fältet istället.
mvh Jörgen :)
------------------
.: Det är jag som ger svaren och det är Ni som ställer frågorna :.
<%
Set Connect = Server.CreateObject("ADODB.Connection")
connect.open "DSN=data;UID=;PWD="
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "Select (select max(datum) from forum where id = f.id or ref_id = f.id ) as datum, f.* From forum f WHERE REF_ID = 0 ORDER BY 1 DESC"
RecSet.Open Addera, Connect, 3,3
X=0
DO UNTIL X=25 OR RecSet.EOF '
IF RecSet("DATUM") > NOW - 1 THEN
nytt = "yes"
else
nytt = "no"
END IF
%>
------------------
essentitia preter non sans multiplicandum
LARS: det funkar inte.
Det blir ju inget felmeddelande, men den raddar upp det alldeles fel. Kollat en bra stund men ser lixom inget mönster i hur den har listat upp det. inte med senast uppdaterade inlägg överst iaf. och inte underst heller för den delen. =(
mvh: basse
Vilken databashanterare använder du? Jag har föreslagit något liknande i ett annat sammanhang för någon som använder Access som också sa att det inte fungerade.
Jag har testat motsvarande frågor i annat än Access och det har fungerat.
Det kanske är enklare att du gör enligt Jorgens förslag.
------------------
essentitia preter non sans multiplicandum
access =( Så du kan alltså inte hjälpa mig då?
Förklara mer hur jag skulle göra med jorgens förslag...
tack för att du tog dig tid iaf.
mvh: basse
Du behöver lägga till en kolumn (lastUpdate t.ex.) av typen datetime i tabellen.
Sen när du gör insert på ett inlägg så får du lägga till följande (Jag gissar lite då jag inte vet hur tabellerna är definierade.)
sql = "update forum set lastUpdate = now() where ref_id = 0 and ? = " & threadId
connect.execute sql,,128
? motsvarar den kolumn som innehåller vilken tråd ett inlägg hör till och
threadId är då idnummer för den tråden.
Förmodligen går det att skriva om min select-sats så att den fungerar även i Access. Jag använder aldrig Access så jag kan inte testa ut något.
------------------
essentitia preter non sans multiplicandum
Hej!
Får upp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'ref_id = 0 and id ='.
addera.asp, line 71
när jag kör:
SQL = "update asp set datum = now() where ref_id = 0 and id = " & threadId
set RecSet = Connect.Execute(sql)
hjälp!!!!!!!!
Det är din variabel threadId som är odefinierad. Hur får den sitt värde?
------------------
essentitia preter non sans multiplicandum