Avatar billede bluey Nybegynder
17. juni 2012 - 09:50 Der er 10 kommentarer og
1 løsning

Udtræk fra database

Sidder og roder med hjemmesiden til jobbet og Nyhed's delen.

På vores forside kan man se 5 seneste/nyeste Nyheder. Men vil gerne lave et Arkiv over alle nyhederne, og jeg kunne naturligvis bare trække alle nyhederne ud der, MEN jeg kunne godt tænke mig at den trak alle nyhederne ud, pånær de 5 nyeste, som jo ér på forsiden.

Kan det lade sig gøre?

Skriver i ASP. og bruger Access.
Avatar billede arne_v Ekspert
17. juni 2012 - 18:06 #1
Hvorfor ikke lade din SQL hente alle, men saa lade din kode skipe de foerste 5?
Avatar billede bluey Nybegynder
17. juni 2012 - 18:50 #2
Jamen det var også i koden at jeg tænkte man kunne lave noget :)

Men jeg ved ikke hvordan udtrækket så skal se ud.

<%
Set cn = Server.CreateObject("ADODB.Connection")
cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("db/database.mdb")
       
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * "pånær seneste 5 nyeste" FROM nyheder ORDER BY ID DESC", cn
do while not rs.eof
%>


Hvis bare det var så let :)
Avatar billede fuldstop Nybegynder
17. juni 2012 - 20:25 #3
Kan du ikke lave et eller med en counter...

Dim count as Integer

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("db/database.mdb")
     
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM nyheder ORDER BY ID DESC", cn

do

count = count+1
If count < "6" Then
Response.Write ""
Else
Response.Write rs("dine poster")
End If

rs.MoveNext
while not rs.eof
Avatar billede bluey Nybegynder
18. juni 2012 - 03:15 #4
@Fuldstop

Når jeg prøve det, så får jeg følgende fejl:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/nyheder_test.asp, line 108

Dim count As Integer
----------^



nyheder.asp

<%
Dim count As Integer

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("db/database.mdb")
   
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM nyheder ORDER BY ID DESC", cn

do

count = count+1
If count < "6" Then
Response.Write ""
Else
Response.Write "<b> " + rs("overskrift") + " </b><br><br> " + FormatStr(rs.form("besked")) + " <br><br>"
End If

rs.MoveNext
while not rs.eof
%>

<%
rs.MoveNext
Loop
rs.close
cn.close
%>
Avatar billede bluey Nybegynder
18. juni 2012 - 04:42 #5
Arne_v

Ah ok.. tak.

Nu får jeg så følgende fejl:

Microsoft VBScript compilation error '800a040e'

'loop' without 'do'

/nyheder_test.asp, line 132

Loop
^

Jeg tænker at det så er dette der er forkert? Måden jeg afslutter?

<%
rs.MoveNext
Loop
rs.close
cn.close
%>
Avatar billede arne_v Ekspert
18. juni 2012 - 03:55 #6
I VBA og VB6 kan du bruge:

Dim count As Integer

men i VBS og ASP/VBS skal du bruge:

Dim count
Avatar billede fuldstop Nybegynder
18. juni 2012 - 07:03 #7
<%
Dim count

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("db/database.mdb")
 
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM nyheder ORDER BY ID DESC", cn

do

count = count+1
If count < "6" Then
Response.Write ""
Else
Response.Write "<b> " + rs("overskrift") + " </b><br><br> " + FormatStr(rs.form("besked")) + " <br><br>"
End If

rs.MoveNext
Loop While Not rs.EOF

rs.close
Set rs = Nothing
cn.close
Set cn = Nothing
Avatar billede bluey Nybegynder
18. juni 2012 - 20:18 #8
Så skete der noget :)

Men den gør noget underligt, synes jeg.

Jeg har en DB med 20 poster i, og den trækker

16

15

14

13

12

ud.

<%
Dim count

Set cn = Server.CreateObject("ADODB.Connection")
cn.Open = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("db/database_test.mdb")

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM nyheder_test ORDER BY ID desc", cn

do

count = count+1
If count < "5" Then
Response.Write ""
Else
Response.Write " " + rs("overskrift") + " <br><br> "
End If

rs.MoveNext
Loop While Not rs.EOF

rs.close
Set rs = Nothing
cn.close
Set cn = Nothing
%>

Meninge er at den skal trække alle poster ud, pånær de nyeste 5 i databasen.
Avatar billede fuldstop Nybegynder
18. juni 2012 - 20:45 #9
fjern lige " " omkring 5

If count < 5 Then
Avatar billede bluey Nybegynder
18. juni 2012 - 20:59 #10
Så virkede det jo sørme efter jeg fjernede de to "" - og ændrede <5 til <6. Nu trækker den 15 poster ud, 1->15 ud af 20 poster.

Perfekt.

Tusinde tak for hjælpen.. også til dig Arne_v

Smid et svar fuldstop :)
Avatar billede fuldstop Nybegynder
18. juni 2012 - 21:10 #11
:) Så lidt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester