Avatar billede ostmedost Nybegynder
10. juli 2004 - 13:40 Der er 19 kommentarer og
2 løsninger

Sortering efter dato

Hej...

Jeg har en database over nogle (mange) arrangementer. Til hvert arrangement er der tilknyttet en dato. Jeg ville så høre hvordan man på sin hjemmeside får vist udelukkende de arrangementer der foregår fra fx i dag og 10 dage frem.

Altså jeg har 3 kolonner med fx Sted, Taler og Dato...og i de respektive rækker står der så Hundested, Peter, 25/6...fx.

Jeg bruger forresten Access...
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 13:45 #1
hvordan ser din SQL ud ?

den skal se ud noget i den her stil:

select from tabelnavn WHERE (dato => date()) AND (dato =< date()+10) ORDER BY dato desc;
Avatar billede ellebaek Nybegynder
10. juli 2004 - 13:55 #2
mon ikke den skal være noget i stilen af:

select * from tabel where dato between date() AND #" & dateadd("d",date,10) & "# order by dato desc
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 13:57 #3
ser mere korrekt ud der ellebaek :-)
Avatar billede ellebaek Nybegynder
10. juli 2004 - 13:58 #4
:-)

Så er det bare at jeg ikke kan huske om between virker i access.. men hvis den ikke gør det, så skal det i stedet være:

select * from tabel where dato >= date() AND dato <= #" & dateadd("d",date,10) & "# order by dato desc
Avatar billede ostmedost Nybegynder
10. juli 2004 - 13:59 #5
Jeg skal måske lige huske at sige at jeg er meget nybegynder med ASP...men kan man, når man har lavet sådan en select der, så lave en løkke der hedder Response.Write rs("Sted")  og så vil den udskrive alle de steder hvor der er et arrangement fra i da og 10 dage frem????
Avatar billede ostmedost Nybegynder
10. juli 2004 - 14:01 #6
ja okay, det var så ikke lige en løkke jeg skrev, men I forstår vel, eller?
Avatar billede ellebaek Nybegynder
10. juli 2004 - 14:01 #7
ja...

Så skal du skrive..

<%
while not rs.eof
response.write rs("sted") & "<br>"
rs.movenext
wend
%>

så udskriver den alle med indholdet der opfylder kriterierne..!
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 14:04 #8
og i stor sammenhæng med ellebaeks SQL vil det se ud noget i den her stil:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dindb.mdb")
strSQL = "select * from tabel where dato >= date() AND dato <= #" & dateadd("d",date,10) & "# order by dato desc"
Set rs = conn.Execute(SQLarrangement)

' så udskriver vi posterne

  DO WHILE NOT rs.EOF
%>


<%= rs("dato") %>
<br>
<%= rs("sted") %>

osv. osv.

det der står i denne while løkke gentages indtil der ikke er flere poster udfor din sql

<%
rs.MoveNext
LOOP
rs.Close
conn.Close
Set conn = nothing
Set strSQL = nothing
%>
Avatar billede ostmedost Nybegynder
10. juli 2004 - 14:04 #9
Okay...lækkert, tak! Hvis du lige lægger et svar så får du nogle point
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 14:05 #10
bemærk at du kan bruge html i din while løkke ved blot at bruge ASP tags til at hente dit recordset ud fra databasen.
Avatar billede ostmedost Nybegynder
10. juli 2004 - 14:05 #11
Okay...svar begge to, nu har I været så hjælpsommelige...tak!
Avatar billede ellebaek Nybegynder
10. juli 2004 - 14:05 #12
ja præcis...

Men har du chekket om det virker..?
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 14:06 #13
jeg sniger også et svar ind hvis du kunne bruge min hjælp til noget :-)
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 14:06 #14
ja det ville være en god ide at checke om det virker først :D
Avatar billede ellebaek Nybegynder
10. juli 2004 - 14:07 #15
dog vil jeg måske ikke anbefale at bruge en do while..

Det kan give problemer hvis der ikke er nogen poster, så vil jeg i stedet blot skrive..

altså dette:
  DO WHILE NOT rs.EOF
%>


<%= rs("dato") %>
<br>
<%= rs("sted") %>

osv. osv.

det der står i denne while løkke gentages indtil der ikke er flere poster udfor din sql

<%
rs.MoveNext
LOOP

skal være:

WHILE NOT rs.EOF
%>


<%= rs("dato") %>
<br>
<%= rs("sted") %>

osv. osv.

det der står i denne while løkke gentages indtil der ikke er flere poster udfor din sql

<%
rs.MoveNext
wend
Avatar billede ostmedost Nybegynder
10. juli 2004 - 14:07 #16
Ja...men hvorfor er der et "=" efter dine "<%" (jeg er bare nysgerrig)
Avatar billede ellebaek Nybegynder
10. juli 2004 - 14:10 #17
det svarer til at du skriver:

<% response.write rs("dato") %>

det er blot for at simplificere det..

Du kan kun skrive en ting ud på den måde..
altså du kan ikke:
<% = while not rs.eof
response.write rs("sted")
wend
%>
Avatar billede ostmedost Nybegynder
10. juli 2004 - 14:11 #18
Jeg kan ikke tjekke om det virker lige nu...hmm, jeg må prøve at stole på jer. Det går nok!
ellebaek - jeg er ikke sikker på jeg forstod det sidste du sagde. Mener du bare at DO WHILE NOT rs.EOF skal være WHILE NOT rs.EOF ????
Avatar billede phineas_phreak Nybegynder
10. juli 2004 - 14:11 #19
det er kommando for at den skal udskrive det der nu står i rs("sted")

f.eks. kan du også udskrive en variabel på sammen måde:

eks.

<%
dim variabel1

variabel1 = "dette er en variabel"

%>


så udskriver vi den i html:

<html>
<head>

<body>
<%= variabel1 %>

</body>
</html>


og til ellebaek. var jeg lidt for hurtig havde glemt jeg checkede om recordsættet var tomt, og hvis det ikke var så udskrev jeg det med DO WHILE. Men det er rigtigt hvad du skriver
Avatar billede ellebaek Nybegynder
10. juli 2004 - 14:13 #20
ostmedost -> det skal se ud som det her...

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & server.MapPath("dindb.mdb")
strSQL = "select * from tabel where dato >= date() AND dato <= #" & dateadd("d",date,10) & "# order by dato desc"
Set rs = conn.Execute(SQLarrangement)

' så udskriver vi posterne

  WHILE NOT rs.EOF
%>


<%= rs("dato") %>
<br>
<%= rs("sted") %>

osv. osv.

det der står i denne while løkke gentages indtil der ikke er flere poster udfor din sql

<%
rs.MoveNext
wend
rs.Close
conn.Close
Set conn = nothing
Set strSQL = nothing
%>
Avatar billede ostmedost Nybegynder
10. juli 2004 - 14:15 #21
Okay...mange tak for hjælpen!
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