Avatar billede funstuff.dk Nybegynder
03. november 2004 - 14:01 Der er 3 kommentarer og
2 løsninger

Opdel i dage

Hej..

Jeg har en masse poster i en database som jeg skal have udskrevet de 10 nyeste opdelt i dage..

Altså hvis der er flere der er lavet den samme dag ska den skive:

Mandag den dato - måned:
post 1
post 2

og hvis der er nogle fx onsdag:

onsdag den dato - måned:
post 3



Sådan skal den gøre med de 10 nyeste poster i databasen..

hvis der ikke er noget en dag skal den ikke vise dagen.

Nogle der kan hjælpe mig med dette og hvordan dette gøres.

På forhånd tak.
Avatar billede -mundi- Nybegynder
03. november 2004 - 14:29 #1
<%option explicit
session.lcid=1030
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>

<body>
<%
dim conn, path,rs,lastdate,currentdate 'deklarerer de variable som skal bruges

Set conn = server.createobject("ADODB.connection")
path = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & server.mappath("test.mdb")
conn.open path ' åbn forbindelse til databasen
set rs = conn.execute("select top 10 * from table1 order by dato desc") ' udtræk de 10 nyeste poster

lastdate="" ' nulstil sidste viste dato

while not rs.eof
    currentdate = FormatDateTime(rs.fields("dato"),2) 'sæt dato til en dd mm åååå version
    if currentdate<>lastdate then
        response.write "<br>"&WeekDayName(day(currentdate))&" den "&day(currentdate)&" - "&monthname(month(currentdate))&"<br>"
        lastdate=currentdate
    end if
    response.write rs.fields("tekst")&"<br>"
    rs.movenext
wend
%>

</body>
</html>

nu ved jeg ikke hva dine felter hedder, og hvilke typer de er.

jeg har taget udgangpunkt i at feltet "dato" er et dato felt
Avatar billede hiks Nybegynder
03. november 2004 - 14:35 #2
hej

det skulle vel ikke være så svært :o)

1. Lav et SQL udtræk der trækker alle poster ud fra din database evt. således:

datoStart = Now()
datoEnd = DateAdd("d",-10, Now())

SQL = "SELECT * FROM dintabel WHERE dato BETWEEN '" & datoStart & "' AND '" & datoEnd & "'

2. Lav en løkke der holder øje med hvornår datoen er forskellig fra den forrige post.

If ditRS.EOF = False then

  While ditRS.EOF = False
      If strTempDato <> ditRS("dindato") then
            strTempDato = ditRS("dindato")
            'udskriv din første "header" indenfor den nye gruppering
      End If
     
      'udskriv "normale" dage
      ditRS.MoveNext
  Wend
Else
'ingen poster i udtræk

End if

Håber det kan bruges. Du spørger bare. :)

/hiks
Avatar billede hiks Nybegynder
03. november 2004 - 14:37 #3
kan lige se at -mundi- har samme idé bare lige hurtigere på aftrækket end mig. Jeg ville ikke bruge top 10 da du så kun får 10 poster ud - ikke 10 dage, som jeg læste det som det du ville.

/hiks
Avatar billede funstuff.dk Nybegynder
03. november 2004 - 14:46 #4
Det var 10 nyeste poster.. ikke dage.. men prøver lige koden..
Avatar billede funstuff.dk Nybegynder
03. november 2004 - 16:01 #5
takker lige hva jeg ku bruge
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