webForumDet fria alternativet

Lista senaste posterna

10 svar · 474 visningar · startad av corona

coronaMedlem sedan feb. 200470 inlägg
#1

Jag håller på med ett nyhetsbrev som jag även vill publicera på en hemsida.
All information lagras i en accessdatabas.
Nu undrar jag hur man gör för att visa de senaste nyheterna (posterna). Har surfat runt på WF men hittar bara hur man gör för att hämta hem t ex de 5 senaste posterna.
Jag har ett nyhetsbrev som publicerades den 24/11 2005 (som ska synas) och ett som är gjort för 4 månader sedan. Jag vill bara se det senaste.
Har provat med:

Hamta = "SELECT * FROM newsArkiv WHERE Datum < now() ORDER BY ID ASC"

Men då listas alla.
Hur ska jag göra?

//Annette

@ndersMedlem sedan juni 200026 914 inlägg
#2
Hamta = "SELECT TOP 5 * FROM newsArkiv WHERE Datum < now() ORDER BY ID DESC"
Peter SMedlem sedan dec. 20025 484 inlägg
#3
select top N *

Där N är antalet poster.

coronaMedlem sedan feb. 200470 inlägg
#4

Ja, men om antalet nyheter är olika i antal dvs antal poster kan variera. Hur gör man då? För om jag sätter TOP 5 då visar den bara 5 poster fast det är 7 poster och nästa gång kanske det finns 6 poster (t ex nästa nyhetsbrev).

//Annette

@ndersMedlem sedan juni 200026 914 inlägg
#5

Huh?

Vad menar du? Om det är 7 poster får du väl använda top 7? Eller vad vill du använda för urval, dvs hur vill du välja ut vilka poster som ska visas?

coronaMedlem sedan feb. 200470 inlägg
#6

Vad jag vill är att man alltid ska kunna läsa det senaste nyhetsbrevet på webben också. Nyhetsbrevet kan innehålla t ex 3 nyheter (3 poster) ena gången men nästa gång den kanske innehåller 7 nyheter (7 poster). Därför kan jag inte sätta TOP till ett fast värde. Jag hoppas du nu förstår mig.
Frågan är om jag ska skapa en räknare om det inte går att plocka ut de senaste nyheterna.

@ndersMedlem sedan juni 200026 914 inlägg
#7

Men...

Hur ska du veta hur många poster som ska hämtas ut? Har du det i en variabel i ex. ASP-kod, eller ska databasen gissa, eller ska det joinas in en annan tabell, eller vad?

LarsGMedlem sedan dec. 200012 465 inlägg
#8

Vill du

hämta alla som är nyare än ett visst datum?
hämta det senaste av varje typ av nyhet?
något annat?
coronaMedlem sedan feb. 200470 inlägg
#9

Jag löste det så här:
Jag skapade en till tabell som tillhandla håller datumet när nyhetsbrevet skickas.

Så min kod vart så här:

Dim HamtaDatum
Set RecSet = Server.CreateObject("ADODB.Recordset")
HamtaDatum = "SELECT TOP 1 * FROM infoDatum ORDER BY ID DESC"
RecSet.Open HamtaDatum, DB, adOpenForwardOnly, adLockReadOnly
	
NyhetsDatum = RecSet("NyhetsDatum")
RecSet.Close
Set RecSet = Nothing
		
Set RecSet = Server.CreateObject("ADODB.Recordset")
 Hamta = "SELECT * FROM newsArkiv WHERE Datum = #" & NyhetsDatum & "#  ORDER BY ID ASC"
 RecSet.Open Hamta, DB, adOpenForwardOnly, adLockReadOnly

Det finns säkert ett bättre sätt.
Ibland vill man lösa allt enkelt eller så slår man knut på sig själv. :D
Tur att WF finns och att det finns de som kan hjälpa en på traven.
Önskar alla här en trevlig helg! :bire

//Annette

LarsGMedlem sedan dec. 200012 465 inlägg
#10

Jo, det räcker med en fråga.

Hamta = "SELECT * FROM newsArkiv WHERE Datum >= " & _
"(select max(Nyhetsdatum) from infoDatum) order by id asc"
coronaMedlem sedan feb. 200470 inlägg
#11

Ok, tack!
Va, bra att det går att lösa med en fråga!

//Annette

Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb