Du kanske ska ha en raderingsfunktion som raderar inläggen genom att sätta en flagga som visar att de är raderade. Då kan du ta med den flaggan i din sql-fråga, och därigenom se till att du endast får ickeraderade inlägg som det senaste.
Hejsan,
Jag håller på med ett forum till en hemsida och använder Access för att lagra inläggen. Mitt problem är när jag vill visa vem som gjort det senaste inlägget i en tråd och när.
Följande fält finns i databasen:
post_id (räknare)
post_headline (text)
post_datetime (datum/tid)
post_by_name (text)
post_by_mail (text)
post_by_ip (text)
post_category (tal)
post_referer (tal)
post_text (PM)
post_answers (tal)
post_readed (tal)
post_latest (datum/tid)
post_latest_name (text)
post_category är alltid 0 om det är ett svar på ett inlägg. post_referer tar då post_id-värdet för det ursprungliga inlägg som det är svar på. Alla första-inlägg har post_referer 0.
post_latest och post_latest_name i ett ursprungligt inlägg tar värdet av det senaste inlägget. Så långt är det ok. Men om jag tar bort ett svar, så finns ju ändå det svarets datum och namn som senaste inlägg...
Jag antar att jag med TOP 1 eller MAX kan få fram datumet för det senaste inlägget i resp. tråd och resp. kategori. Men hur?
Så här ser mitt SQL-anrop ut nu (vilket funkar om man inte tar bort ett inlägg):
SQL = "SELECT TOP 1 "&_
"*, (SELECT Count(post_id) FROM forum_posts WHERE post_category = "& cLng(rstCategorys.Fields(0).Value) & ") AS replies "&_
"FROM forum_posts "&_
"WHERE post_referer = 0 "&_
"AND post_category = "& cLng(rstCategorys.Fields(0).Value) & " "&_
"ORDER BY post_latest DESC;"
