database: bepaalde datums ophalen

Gestart doorMarjolein22 reacties54 weergaven

23 berichten · pagina 1 van 2

Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Oke, ik heb dus een lijst met datums in mijn database staan, en ik gebruik deze code op dit op te halen:

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13

$show = mysql_query("SELECT
*,
DATE_FORMAT(datumm, %d-%m-%Y) AS newdate
FROM
agenda
WHERE
datumm >= NOW()
ORDER BY
datumm
ASC
"
);
?>

Maar dan haalt het dus alles op, nu kan er wel een limiet van bv 20 opzetten maar dit werkt niet zoals ik het wil want als ik dan bv in de maand oktober maar 3 items heb dan haalt hij ook de datums op van november/december en dat wil ik dus niet. Ik wil maximaal 30 dagen erna.
Heb al een beetje gegoogled maar daar kom ik niet echt uit bloos
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dus je wil vanaf vandaag (11-09) tot een maand daarna? Of van 01-10 tot 31-10?
In het eerste geval:

SELECT
    *
FROM
    agenda
WHERE
    datum BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 1 MONTH)
ORDER BY
    datumm ASC


In het tweede geval:

SELECT
    *
FROM
    agenda
WHERE
    MONTH(datumm) = 10
AND
    YEAR(datumm) = 2013
ORDER BY
    datumm ASC
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
2e geval niet want dan moet ik dit iedere maand gaan aanpassen in het script.
1e code gaat ik ff uit proberen, alvast bedankt Luuk
Afbeelding

edit: deze code werkt alleen de datum van vandaag pakt ie niet daarom had ik die >= staan, valt dat nog aan te passen?

Edit2: Lamaar hihi.. , ik heb NOW() vervangen door CURDATE() en dan geeft ie vandaag wel weer.
Opgelost dus smile
0
Berichten
18.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nice pompom
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Marjolein schreef:
2e geval niet want dan moet ik dit iedere maand gaan aanpassen in het script.
1e code gaat ik ff uit proberen, alvast bedankt Luuk
Afbeelding

edit: deze code werkt alleen de datum van vandaag pakt ie niet daarom had ik die >= staan, valt dat nog aan te passen?

Edit2: Lamaar hihi.. , ik heb NOW() vervangen door CURDATE() en dan geeft ie vandaag wel weer.
Opgelost dus smile
PHP
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Marjolein schreef:
2e geval niet want dan moet ik dit iedere maand gaan aanpassen in het script.
1e code gaat ik ff uit proberen, alvast bedankt Luuk
Afbeelding

edit: deze code werkt alleen de datum van vandaag pakt ie niet daarom had ik die >= staan, valt dat nog aan te passen?

Edit2: Lamaar hihi.. , ik heb NOW() vervangen door CURDATE() en dan geeft ie vandaag wel weer.
Opgelost dus smile
PHP
Wat je enigszins normaal met SQL kunt doen dat moet je met SQL doen, en dus niet met PHP.
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Lennard schreef:
Eerdere citaten tonen
Dylanh schreef:
Eerdere citaten tonen
Marjolein schreef:
2e geval niet want dan moet ik dit iedere maand gaan aanpassen in het script.
1e code gaat ik ff uit proberen, alvast bedankt Luuk
Afbeelding

edit: deze code werkt alleen de datum van vandaag pakt ie niet daarom had ik die >= staan, valt dat nog aan te passen?

Edit2: Lamaar hihi.. , ik heb NOW() vervangen door CURDATE() en dan geeft ie vandaag wel weer.
Opgelost dus smile
PHP
Wat je enigszins normaal met SQL kunt doen dat moet je met SQL doen, en dus niet met PHP.
Kan je dan met SQL dan het getal van de maand ophalen?
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Dylanh schreef:
Eerdere citaten tonen
Lennard schreef:
Eerdere citaten tonen
Dylanh schreef:
Eerdere citaten tonen
Marjolein schreef:
2e geval niet want dan moet ik dit iedere maand gaan aanpassen in het script.
1e code gaat ik ff uit proberen, alvast bedankt Luuk
Afbeelding

edit: deze code werkt alleen de datum van vandaag pakt ie niet daarom had ik die >= staan, valt dat nog aan te passen?

Edit2: Lamaar hihi.. , ik heb NOW() vervangen door CURDATE() en dan geeft ie vandaag wel weer.
Opgelost dus smile
PHP
Wat je enigszins normaal met SQL kunt doen dat moet je met SQL doen, en dus niet met PHP.
Kan je dan met SQL dan het getal van de maand ophalen?
MONTH(NOW())

toevoeging op 11 september 2013, 18:26:16:
Eigenlijk net zoals je de maand van je datumm ophaalt
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja, en dat is mijn volgende vraag:

Nu heb ik dus via een adminpagina (waar je de data kan wijzigen, toevoegen of verwijderen) een hele rits met data (stuk of 150) die wil ik dus nu gaan weergeven door eerst een maand te kiezen met een select vakje...
Nadat ik de maand heb geselecteerd krijg ik alle data te zien van die maand, hoe kan ik dit het beste doen? Ik hoef geen hele voorgekauwde code maar mag wel yummie
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Data ophalen -> In div stoppen met display:none en dan.met javascript kijken of het select vakje. aan.is en zoja de display terug zetteb.

toevoeging op 12 september 2013, 07:21:10:
Denk ik
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Het gaat juist erom hoe ik de data ophaal, het weergeven ervan weet ik wel hoe dat moet wink
0
Berichten
1.871
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Misschien een
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ja het is gelukt...pfff wel weer nadenken hoor na een jaar niks aan websites te hebben gedaan.
Bedankt... misschien dat ik met nog meer vragen kom maar ben tot zover even geholpen.
0
Marjolein

Lid · Topicstarter

Berichten
15.446
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sorry dat ik deze topic weer even omhoog schopt maar ik loop toch tegen een probleem aan.

Dit is de query:

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10

$uQuery = mysql_query("SELECT
*
FROM
tabel
WHERE
datumm BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 3 MONTH)
ORDER BY
datumm
ASC
");

nu haalt ie dus alle datums eruit vanaf vandaag t/m 3 maanden later...helemaal goed maar het probleem is dat de data van Januari ook als 2013 zijn opgeslagen dus die worden niet weergegeven. Hoe kan ik dit zo doen dat er niet naar het jaar gekeken word maar alleen naar de maanden?

Ik heb echt al van alles geprobeerd o.a.:

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8

MONTH(datumm) BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 3 MONTH)
MONTH(datumm) BETWEEN NOW() AND MONTH(DATE_ADD(now(), INTERVAL 3 MONTH))
datumm BETWEEN MONTH(NOW()) AND MONTH(DATE_ADD(NOW(), INTERVAL 3 MONTH))
MONTH(datumm) BETWEEN NOW() AND MONTH(DATE_ADD(NOW(), INTERVAL 3 MONTH))
MONTH(datumm) BETWEEN NOW() AND MONTH(DATE_ADD(NOW(), INTERVAL 3 MONTH)) AND DAY(datumm) = DAY(NOW())
DAY(datumm) = DAY(NOW()) AND MONTH(datumm) BETWEEN NOW() AND MONTH(DATE_ADD(NOW(), INTERVAL 3 MONTH))
DAY(datumm) = DAY(NOW()) AND MONTH(datumm) BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 3 MONTH)
datumm BETWEEN NOW() AND MONTH(DATE_ADD(NOW(), INTERVAL 3 MONTH))

haha. de meest gekke dingen geprobeerd zoals je ziet maar ik blijf een leek in dit soort dingen yummie
0
Berichten
13.482
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11

SELECT
*
FROM
tabel
WHERE
MONTH(datumm) BETWEEN MONTH(NOW()) AND (MONTH(NOW())+3)
OR
MONTH(datumm) BETWEEN (MONTH(NOW())-12) AND (MONTH(NOW())-9)
ORDER BY
ABS(MONTH(datum)-MONTH(NOW()))
ASC

Met die query kun je de berichten van de komende drie maanden ophalen. Je houdt nu wel een paar extra problemen: Data die al geweest zijn staan er ook tussen, en op 1 oktober wordt een agenda-item van 31 januari ook al getoond.. Je zou de query een stuk ingewikkelder kunnen maken om dit op te lossen, maar dit kan ook met PHP gedaan worden. Ik weet zo niet 1-2-3 wat de makkelijkste oplossing is.

toevoeging op 28 oktober 2013, 12:04:32:
Ohja, de ordening klopt ook niet meer waarschijnlijk..
edit: ordening gefixt.
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren