Avatar billede EveryMA Mester
10. maj 2013 - 20:26 Der er 20 kommentarer og
1 løsning

Adskil med dato

Hej,

Jeg kan ikke helt tænke mig til hvordan jeg skal adskille posts fra db'en via dato. som f.eks:

(Det skal samtidig sorteres efter tidspunkt, som er inkluderet i datoen)

10. maj 2013:
- Alle posts fra 10. maj 2013 udskrives her kl. 10
- Alle posts fra 10. maj 2013 udskrives her kl. 11
- Alle posts fra 10. maj 2013 udskrives her kl. 13
- Alle posts fra 10. maj 2013 udskrives her kl. 20

11. maj 2013:
- Alle posts fra 11. maj 2013 udskrives her kl. 9
- Alle posts fra 11. maj 2013 udskrives her kl. 21
...


Altså så der kommer mellemrum mellem de forskellige datoer, men at posterne bliver udskrevet det rigtige sted.

Samtidig må den ikke hente posts fra fortiden. Det skal være idag og de kommende dage (en limit af en art)
Avatar billede keysersoze Guru
10. maj 2013 - 20:46 #1
Lav en order by i din SQL - og i din for-løkke skriver du noget a la;

date = ""

'loop start
if date <> rs("dindate") then
  response.write rs("dindate")
  date = rs("dindate")
end if
'resten af koden
'loop end
Avatar billede EveryMA Mester
14. maj 2013 - 20:06 #2
Men det stykke kode gør jo ikke det jeg er ude efter.

I øvrigt forstår jeg ikke helt hvorfor du angiver date til at være ingenting? for derefter at bruge den til if date <> rs("date")?

Jeg går udfra, at date bliver defineret i min sql-sætning, men hvorfor du starter med at navngive den til ingenting forstår jeg ikk helt...
Avatar billede keysersoze Guru
14. maj 2013 - 21:05 #3
variablen bruges til at vurdere om der skal udskrives en ny gruppering eller ej.

hvad mener du mangler?
Avatar billede EveryMA Mester
06. juli 2013 - 10:33 #4
Hej. Undskyld det sene svar! Var på ferie og da jeg kom hjem havde jeg glemt alt om spørgsmålet - fik lige en mail på den.

Jeg kan ikke helt tænke mig frem til det resultatet ud fra det kode-stykke du postede. Den sorterer jo på ingen måder posterne og udskriver hvis datoen = idag, eller datoen = imorgen. Det skal jo være som jeg skrev i mit første indlæg:

10. maj 2013:
- Alle posts fra 10. maj 2013 udskrives
- Alle posts fra 10. maj 2013 udskrives
-II-

11. maj 2013:
- Alle posts fra 11. maj 2013 udskrives
- Alle posts fra 11. maj 2013 udskrives
-II-


-

Altså med den øverste dato som IDAG, og derefter følger der 5 datoer (imorgen, i overmorgen, dagen efter det osv.) med relevante posts.
Avatar billede keysersoze Guru
06. juli 2013 - 17:34 #5
Sorteringen klarer du i din SQL - så sørger mit kodeeksempel for at lave opdelingen som du beskriver.
Avatar billede EveryMA Mester
06. juli 2013 - 18:00 #6
Du må gerne være lidt mere direkte i din besked. Jeg forstår dig ikke.

På hvilket tidspunkt sørger den for at udskrive posts, som er lagt ind til den 10. juli f.eks.?

Dit kodestykker referer udelukkende til date = dagen idag, og ikke noget som helst med i morgen og dagen efter imorgen osv.
Avatar billede keysersoze Guru
06. juli 2013 - 18:19 #7
date er ikke lig dagen i dag - date sættes til rs("din_dato_kolonne"), altså er det din database der styrer datoen. Når løkken så støder på en ny dato fra databasen udskrives en ny "overskrift".
Avatar billede EveryMA Mester
06. juli 2013 - 19:28 #8
ah ok nu følger jeg dig. der er bare det problem at jeg looper mit udkast så alle posts fra den pågældende dato udskrives. problemet er bare at hvis der er 5 post fra den 10. juli, så udskriver den

10. juli
- post 1
- post 2

^Det udskriver den 5 gange, og ikke bare den ene gang som den skal.

Hvis jeg ikke looper så udskriver den KUN én dato og dens poster...
Avatar billede keysersoze Guru
06. juli 2013 - 20:14 #9
ikke forstået?
Avatar billede EveryMA Mester
06. juli 2013 - 20:31 #10
Altså hvis der er 3 posts under 10. juli, så udskriver den det sådan:

10. juli 2013
- post 1
- post 2
- post 3

10. juli 2013
- post 1
- post 2
- post 3

10. juli 2013
- post 1
- post 2
- post 3

------
Altså tre gange udskriver den det hele, og ikke bare én gang. Men det gør den kun når jeg looper. Hvis jeg ikke looper udskriver den bare alt fra den øverste dato, og ikke de andre datoer
Avatar billede keysersoze Guru
06. juli 2013 - 22:00 #11
det lyder som om du laver en løkke i en løkke eller lignende - hvordan ser din kode ud?
Avatar billede EveryMA Mester
06. juli 2013 - 23:23 #12
Jeg laver to udtræk. Èn til at opsamle samtlige datoer og én til at udskrive de forskellige posts.

sql = select from ...
set rs = conn.execute(sql)

'Din løkke som du skrev tidligere

---
sql = select from ... where dato = dato (fra den første sql)
... Også udskriver den ellers bare de forskellige posts som passer med datoerne.

Jeg mener det er den første sql som ødelægger det, men jeg kan ikke se hvordan den ellers skal kunne udtrække datoerne FRA databasen og ind i sql nummer to..
Avatar billede EveryMA Mester
06. juli 2013 - 23:24 #13
sql nummer to ser selvfølgelig sådan ud:

sql = select from ... where dato = rs("dato")
Avatar billede keysersoze Guru
06. juli 2013 - 23:33 #14
Medmindre der er noget jeg har misforstået behøver du kun én SQL - nemlig den der hiver alle dine poster ud. Det er sorteringen på den der får min ene løkke til at fungere.
Avatar billede EveryMA Mester
06. juli 2013 - 23:44 #15
Ja, men for mig at se bliver den opgave umulig. For min sql som henter posterne ud fra de pågældende dato bruger jo RS("dato") i strengen. Det kan den ikke hvis der ikke har været en SQL tidligere i koden?
Avatar billede keysersoze Guru
06. juli 2013 - 23:51 #16
du skal slet ikke have en where på din SQL - du skal bare hente alle poster sorteret på dato.
Avatar billede EveryMA Mester
06. juli 2013 - 23:57 #17
Yes.
Jeg starter med at hente alle poster ud.
Dernæst kommer din løkke til at sortere - men som det ser ud lige nu udskriver den den tidligste dato i databasen og udskriver ellers bare alle posts - også selvom datoerne ikke stemmer overens...

sådan ser det ud i lange træk:

sql = select ... order by dato asc

date = ""

if date <> rs("dato") then

'udskriver datoen og noget tekst som hører til de forskellige udtræk
do until rs.eof
- udskriver samtlige poster i en tabel

date = rs("dato")
end if
rs.movenext
loop
Avatar billede keysersoze Guru
07. juli 2013 - 00:09 #18
du er nødt til som i mit eksempel at have udskrivning af datoen inde i løkken - ellers når du ikke langt.
Avatar billede EveryMA Mester
07. juli 2013 - 00:29 #19
ah ja - selvfølgelig!
det lader til at virke . jeg får lige kigget på det igen i morgen så vender jeg tilbage.
tak for det
Avatar billede EveryMA Mester
07. juli 2013 - 11:11 #20
Der er lidt småproblemer med at få afsluttet lukket tabellen ordenlig hvis der er flere end én posts for den pågældende dato. Men det jeg kom for - adskil med dato - fungerer perfekt nu.
Tak for det - smid bare et svar :)
Avatar billede keysersoze Guru
07. juli 2013 - 17:22 #21
svar
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