12. februar 2004 - 23:45Der er
8 kommentarer og 1 løsning
Kalender - opliste events under pågældende måned
Jeg har en række events, der skal opdeles i måneder.
Brugeren kan selv vælge, for hvilket tidsrum denne vil se events, fx 5, 7 eller 13 måneder frem, i tiden. Desuden skal events fra den foregående måned også kunne ses
Events ligger gemt i databasen med unix timestamp, og det er på denne værdi, der skal opdeles.
Tomme måneder skal også oplistes, altså hvis der en måned ikke er indtastet et event, skal der bare stå månedens navn, og under denne skal der stå "Ingen arrangementer"
Eksempel: Brugeren vælger at se 3 måneder frem fra 12/2 - 2004
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg tror at den nemmeste fremgangsmåde vil være følgende :
1) find ud af hvor mange måneder at brugeren har ønsket 2) for hver måned find unix-timestamp (TS) for kl. 00:00:00 d. 1. i måned, samt TS for kl.00:00:00 den 1. i den følgende måned 3) lav det nødvendige antal queries til db'en (hvis der er ønsket 3 måneder frem bliver det i alt 5 queries) 4) lav et output for hver af disse måneder...
ELLER...
Hvis muligt, så gem datoen i et DATE felt, således at du kan spørge på date LIKE "2004-01-%%" (for januar f.eks.)
Grunden til at jeg foreslår noget så drastisk som db-redesign er, at jeg kan se at du har et behov, hvor måned rent faktisk har en funktionel værdi - derfor kan man vove den påstand at det derfor bør reflekteres i db'en
bromer >> he eh ... det er da også rigtigt ... Jeg havde helt glemt at man også kan lave processeringen på MySQL-siden...
Og hvis man i resultsættet - udover at sende litterale tabel-data-værdier tilbage - også sender en kolonne tilbage med månedens navn/ID, så kan man i PHP bruge det til at lave listen...
tak for at minde mig om at der er andre metoder, end lige brute force, som kan bruges i dette tilfælde :-)
SELECT overskrift,MONTH(dato) as m FROM silk_news WHERE m < 'some' AND m > 'some other' ORDER by m
Det er skrevet meget i fri hånd. For det første kan det godt være at din database brokker sig over at dit dato-felt faktisk ikke er et datofelt men en tinyint og så videre... samtidig er der ikke taget højre for år, men kun måneder... leg lidt med det.. (Find også ud af hvad INTERVAL er for noget i SQL, kan gøre din query meget pænere)
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.