webForumDet fria alternativet

Datumordning på inlägg

ASP

11 svar · 195 visningar · startad av Bj

Medlem sedan sep. 2000314 inlägg
Frågan#1

Försöker nu få till ordningen på inläggen i forumet.
Har sorterat Huvudrubrikerna på 1:a-sidan med det senast inlagda högst upp men vill att om ett svar på ett tidigare inlägg skrivs så skall detta hamna högst upp och i datumkolumnen skall datum o tid för svaret visas.
Antar att det är ngt med följande rad.

Visa = "SELECT * FROM forumrubriker Where rubrikja = true order by datum desc"

Här är en förkortad version av koden:

<!-- #include file="adovbs.inc" -->
	<%
	Set RecSet1 = Server.CreateObject("ADODB.Recordset")
	Visa = "SELECT * FROM forumrubriker Where rubrikja = true order by datum desc"
	RecSet1.Open Visa, Connect, adOpenStatic, adLockOptimistic

Dim antal_svar,svar
while not recset1.eof
Antal_Svar = "SELECT count(*) as antal_svar FROM forumrubriker WHERE svarID =" & RecSet1("rubrikID")
svar = connect.execute(antal_svar)
%>

<% = svar("antal_svar")%>, 
<a href=inlagg.asp?inlaggID=<% =RecSet1("RubrikID") %>><% =left(RecSet1("Rubrik"),100) %></a>, 
<%=RecSet1("Namn")%>, 
<%=RecSet1("Datum")%><br><br> 
<% recset1.movenext
wend
RecSet1.Close
Connect.Close
Set Connect = Nothing
%>
Medlem sedan feb. 20012 412 inlägg
#2

Hej!

Hur ser din tabellstruktur ut?

För jag misstänker att du vill att ett inlägg också flyttas upp om tråden blir besvarad?

Jag hade gjort ett extra fält, tex dteLastInsert som får ett färskt datum vid svar. Sedan hade jag sorterat efter det.

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan sep. 2000314 inlägg
#3

Så här ser tabellen ut:
RubrikID (Räknare)
SvarId (Tal)
Namn (Text)
Rubrik (Text)
Meddelande (PM)
Datum (Datum/Tid)
RubrikJa (Ja/Nej)

Medlem sedan feb. 20012 412 inlägg
#4

Hej!

Gör ett nytt fält i databasen som tex heter dteLastInsert som du ger standardvärde Now(). Sedan när någon svarar på inlägget uppdaterar du det fältet med Now() för det Id som blev besvarat. Sedan sorterar du efter dteLastInsert DESC.

Lycka till!

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan sep. 2000314 inlägg
#5

Hmm
Men egentligen har jag ju ett liknande fält i och med att datumet redan finns.
Problemet är ju när jag skall ta fram det senaste inlägget sorterar jag med
Visa = "SELECT * FROM forumrubriker Where rubrikja = true order by datum desc"
Detta för att jag inte vill ha med svarens rubriker utan endast inläggens rubriker på 1:a sidan.

Eller har jag hamnat i helt fel tankar.....

Medlem sedan feb. 20012 412 inlägg
#6

Hej!

Du tänker nästan rätt. Problemet är då att du bara hämtar orginalinläggens datum om jag förstått din struktur rätt. Du vill ju även få med svaren och då får du lägga till ett datumfält som uppdateras vid svar som du kan sortera efter.

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan sep. 2000314 inlägg
#7

Svarens datum uppdateras i samband med svaret och finns i datumfältet redan nu.
Alltså både inlägg och svar ligger just nu i samma datumfält.

Medlem sedan feb. 20012 412 inlägg
#8

Hej!

Okey, men då blir det ju fel datum och tid på inlägget. Din sql-fråga bör fungera då.

En annan tanke som kan klabba till det. Datum är ett reserverat ord i vissa dbms och kan därmed ställa till beskymmer. Prova byta namn på kolumnen eller klammra fältet i sql-frågan: [Datum].

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

Medlem sedan sep. 2000314 inlägg
#9

Okey nu är jag med igen... ;)
Jag måste ju se till att datumet även för första inlägget uppdateras i samband med att svaret läggs in.
Men hur tusan går man tillväga för detta?
Testade med nåt liknande det här:

	RecSet.Find "rubrikID =" & svarID

	if not RecSet.EOF then
	RecSet("datum") = Now
	RecSet.Update
	end if

Men det funkade icke.
Är det någon som kan beskriva hur man uppdaterar ett datum som redan finns i databasen på själva huvudinlägget till svaret?
Nedan finns sidan som lägger till uppgifterna i svaren.

	Set RecSet = Server.CreateObject("ADODB.Recordset")
   	Addera_Svar = "SELECT * FROM forumrubriker"

 	RecSet.Open Addera_Svar, Connect, adOpenStatic, adLockOptimistic
	RecSet.AddNew

	RecSet("SvarId") = Request.Form("NySvarId")
	RecSet("Namn") = Request.Form("namn")
	RecSet("Rubrik") = Request.Form("rubrik")
	RecSet("Meddelande") = Request.Form("meddelande")     
	RecSet("Datum")= now()

	RecSet.Update
	RecSet.Close
	Connect.Close
	Set Connect = Nothing
Medlem sedan dec. 200012 464 inlägg
#10
sql = "update forumrubriker set datum = now() where svarid = 0 and rubrikid = " & Request.Form("NySvarId")
connect.execute sql,,128

Nu vet jag inte om det stämmer exakt med din tabellstruktur och formulärsfält.

------------------
essentitia preter non sans multiplicandum

Medlem sedan sep. 2000314 inlägg
#11

Naturligtvis funkade detta LarsG!! Tack!
Men vad betyder:
connect.execute sql,,128 ?
Kan ju vara bra att förstå inför framtiden!

Medlem sedan feb. 20012 412 inlägg
#12

Hej!

Att du inte skapar ett tomt RecSet. Man behöver enbart skapa ett sådant vid en select (dock ej tomt då :) ).

mvh Jörgen :)

------------------
Varför bråka när man kan kramas?

[Redigerat av jorgen den 27 okt 2001]

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