Permalänk

nyhetsscript

Tja!
Jag vill få en asp att lista tre senaste nyheterna i en databas (tre nyheterna med högsta "id").

Men jag använder en access databas och får det inte riktigt att fungera med rs.movelast och rs.moveprevious

mvh maciek

Visa signatur

Vad är en signatur?

Permalänk
Hedersmedlem

Nu kommer jag inte riktigt ihåg med access men jag har för mig att det är

SELECT TOP 3 FROM tabell...

Men som sagt, jag är inte så hemma på access...

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Citat:

Ursprungligen inskrivet av m0REc
Nu kommer jag inte riktigt ihåg med access men jag har för mig att det är

SELECT TOP 3 FROM tabell...

Men som sagt, jag är inte så hemma på access...

funkade inte..någon som vet exact hur man ska skriva?

Visa signatur

Vad är en signatur?

Permalänk
Hedersmedlem

maciekish: Vet inte säkert men jag tror att det blir

SELECT TOP 3 FROM dintabell ORDER BY id DESC

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

Det beror på vilken databas det är... Access och SQL Server har stöd för TOP, men det är ingen SQL standard!

För Oracle borde följande fungera:

SELECT * FROM (SELECT * FROM table_name ORDER BY column_name DESC) WHERE ROWNUM < 4;

Edit: Såg att det gällde Access... Då ska m0REc's förslag fungera alldeles utmärkt...

/Anders

Visa signatur

**************************
Om det fungerar för bra, installera om det...

Permalänk

Glöm inte vad som skall hämtas av SELECT; i mitt fall * (allt);

SELECT TOP 3 * FROM dintabell ORDER BY id DESC

Visa signatur

RTFM

Permalänk

Såhär har jag på min sida, det är ju inte lika snygg lösning märkte jag nu.

set rs = connect.execute("SELECT * FROM nyheter ORDER BY id DESC") dim snor = 1 DO UNTIL rs.EOF or snor = 4 response.write(rs("nyhet")) snor = snor + 1 rs.movenext loop

Visa signatur

"Knowledge amplification. What he learns, we all learn. What he knows, we all benefit from."

Permalänk
Citat:

Ursprungligen inskrivet av KentRoyal
Såhär har jag på min sida, det är ju inte lika snygg lösning märkte jag nu.

set rs = connect.execute("SELECT * FROM nyheter ORDER BY id DESC") dim snor = 1 DO UNTIL rs.EOF or snor = 4 response.write(rs("nyhet")) snor = snor + 1 rs.movenext loop

Men, varför använder du inte koden jag skrev?

set rs = connect.execute("SELECT TOP 10 * FROM nyheter ORDER BY id DESC") DO UNTIL rs.EOF response.write(rs("nyhet")) rs.movenext loop

Visa signatur

RTFM

Permalänk

"top 3" funkade ite men ORDER BY id DESC funkar så jag stoppar in en loop som räknar till 3 helt enkelt, tack för hjälpen!!

Visa signatur

Vad är en signatur?

Permalänk

Om man ska skriva "riktig" SQL så skriver man det som

SELECT * FROM nyheter ORDER BY id DESC LIMIT 3

Vet dock inte om det funkar i access, microsoft brukar ju ha egna lösningar på det mesta

Visa signatur

RTFM - vacker sak att säga till folk som ställer dumma frågor

Permalänk
Hedersmedlem

jcarlsson: Nej det fungerar i access, i access så använder man top. Så den kodraden jag skrev ska fungera, underligt att den inte gjorde det...

Eller ja, det ska som sagt vara

SELECT * TOP 3 FROM nyheter ORDER BY id DESC

eller är det

SELECT TOP 3 * FROM nyheter ORDER BY id DESC

?

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk

Det enda dumma är att TOP aldrig har fungerat när jag har försökt, har försökt med nästan alla möjliga kombinationer av SELECT, TOP x och * men alltid fått någon form av fel på just den delen av min SQL-sats

Men men, borde gå att hitta lite info om TOP x på MSDN.

Kanske ska vara TOP(x) tror jag har sett något sådant någonstans, men jag kommer inte ihåg om det var TOP det handlade om då eller om det var något annat.

EDIT:
Hittade lite info på MSDN. Enligt:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/f1/d2/s5a319.asp
så ska det se ut såhär:

SELECT TOP 3 * FROM nyheter

Visa signatur

RTFM - vacker sak att säga till folk som ställer dumma frågor

Permalänk
Hedersmedlem

Mm, som jag sa först då...

<%

' Hämta de 2 senast inlagda posterna
strSQL = "SELECT TOP 2 * FROM FROM tblTest ORDER BY inlagd DESC"

Set objRS = objCon.Execute(strSQL)

Do Until objRS.EOF

Response.Write(objRS("namn") & "<br>")
objRS.MoveNext

Loop
Set objRS = Nothing

%>

Hittade jag på aspsidan...

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.