Avatar billede telemuzen Nybegynder
19. februar 2003 - 08:48 Der 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?

Helst en forklaring fra bunden.

Martin/
Avatar billede eagleeye Praktikant
19. februar 2003 - 08:51 #1
Du kan bruger TOP 10 til at vælge de føste 10 og sortere (ORDER BY) enten autonummer kolonnen eller dato/tid hvis du har sådan en kolonne:

SQL = "SELECT TOP 10 * FROM tabelSpørgsmål ORDER BY ID DESC"
Avatar billede rudi1234 Nybegynder
19. februar 2003 - 08:55 #2
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") .
Avatar billede telemuzen Nybegynder
19. februar 2003 - 08:56 #3
Jeg har ikke adgang til SQL, bruger viborgnet.

Skal jeg bare oprette en ny .asp fil og intaste ovenstående?

En kolonne, mener du Access Database?

Martin/
Avatar billede rudi1234 Nybegynder
19. februar 2003 - 09:01 #4
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
Avatar billede telemuzen Nybegynder
19. februar 2003 - 09:06 #5
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?

Jeg er lidt at af newbie?? : -D

Martin/
Avatar billede somaliomar Praktikant
19. februar 2003 - 09:10 #6
telemuzen >> Hvis du ikke har læst det http://www.html.dk/tutorials/asp/
Avatar billede telemuzen Nybegynder
19. februar 2003 - 09:14 #7
somaliomar>> jeg har læst noget af det, det står også hvordan man gør, men det er lidt Uoverskueligt hvis man ikke har så meget forstand på det.

Det sværeste er, hvor jeg skal oprette hvad? skal koden ligge i Head? skal koden ligge andre steder, mm.

Martin
Avatar billede rudi1234 Nybegynder
19. februar 2003 - 09:16 #8
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">

<html>
<head>
    <title>10 nyeste spørgsmål</title>
</head>

<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>
Avatar billede rudi1234 Nybegynder
19. februar 2003 - 09:17 #9
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).
Avatar billede telemuzen Nybegynder
19. februar 2003 - 09:22 #10
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.

På forhånd mange tak for hjælpen.

Martin
Avatar billede rudi1234 Nybegynder
19. februar 2003 - 09:30 #11
helt fint... :o)
Avatar billede eagleeye Praktikant
19. februar 2003 - 10:00 #12
rundi1234>> til kommentar 19/02-2003 08:55:47 nej det kan man ikke.
Avatar billede rudi1234 Nybegynder
19. februar 2003 - 10:07 #13
eagleeye: takker! Og undskylder "indbruddet" i tråden...!
Avatar billede mortrr Praktikant
19. februar 2003 - 23:31 #14
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.

- Morten
Avatar billede telemuzen Nybegynder
29. maj 2003 - 08:53 #15
rudi1234>> kan du ikke ligge et svar, så vil jeg dele points ud.

Martin
Avatar billede rudi1234 Nybegynder
29. maj 2003 - 14:47 #16
Det er hermed gjort! :o)
Avatar billede telemuzen Nybegynder
29. maj 2003 - 17:16 #17
Mange tak for hjælpen..

Martin/
Avatar billede rudi1234 Nybegynder
29. maj 2003 - 17:19 #18
Velbekomme!
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