19. februar 2003 - 08:48Der er
16 kommentarer og 2 løsninger
Snitz Forum - 10 nyeste spgs.
Hejza..
Jeg har et Snitz Forum på mit hjemmeside, jeg vil gerne have at de ti nyeste spørgsmål er på min forside, og den skulle gerne selv opdatere spørgsmålene.
Jeg bruger Access, og Asp, er der nogen der har nogle ideer til hvordan man kan gøre det?
Undskyld jeg bryder ind..., men eagleeye: Kan man lave lign. forespørgsel der henter f.eks. posterne 30-40 (noget lign. SQL = "SELECT TOP 30-40 * FROM tabelSpørgsmål ORDER BY ID DESC") .
Ja, med asp kan du altid gøre det. Skriv f.eks.: Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("db.mdb") Conn.Open DSN SQL = "SELECT TOP 10 * FROM tabelSpørgsmål ORDER BY ID DESC" Set spm = Conn.Execute(SQL) If not spm.eof then Do Response.write spm("felt1") & "<br>" spm.movenext loop while not spm.eof End If
Rudi1234>> kunne du ikke skrive de variabler som jeg selv skal udskifte? feks. DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; - Stjerne, skal jeg selv udskifte den med navnet på mbd? FROM tabelSpørgsmål - hvad skal jeg indsætte der? Response.write.spm("JAVASCRIPT") & "<br>" - eller?
Hvis f.eks. din accesdatabase-fil hedder "db.mdb", tabellen hedder "tabelSpørgsmål ", du har et autunummereringsfelt der hedder "id" og du gerne vil udskrive felterne "overskrift" og "spørgsmål", så er denne kode klar til at blive brugt:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<body> <h1>10 nyeste spørgsmål</h1> <% Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath ("db.mdb") Conn.Open DSN SQL = "SELECT TOP 10 * FROM tabelSpørgsmål ORDER BY ID DESC" Set spm = Conn.Execute(SQL) If not spm.eof then Do Response.write "<h4>" & spm("overskrift") & "</h4>" & spm("spørgsmål") & "<br>" spm.movenext loop while not spm.eof End If %> </body> </html>
Asp-koden kan ligge hvor man har lyst til at lægge den, men når noget skal skrives ud med "Response.Write", så skal det ligge hvor teksten skal udskrives (dvs. normalt i body-sektionen).
rudi1234>> Jeg prøver lige at fikse det sammen i løbet af dagen, er det iorden? Så deler jeg point ud senere idag? - hvis jeg har brug for mere info så skriver jeg.
rundi1234 og eagleeye > Man kan godt "simulere" en limit x,y på SQL-server, med en subselect.
Den mest brugte er:
Start fra række x. Hent y rækker: SELECT TOP y feltnavn FROM (SELECT TOP x + y feltnavn FROM tabelnavn ORDER BY feltnavn) AS toptabel(feltnavn) ORDER BY feltnavn DESC
Altså - udvælg fx de øverste 50, og udvælg heraf de nederste 10.
Og så evt bruge det som en subselect til at hente resten af feltene.
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.