moeilijke date en time query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kabbi

kabbi

04/10/2006 11:45:00
Quote Anchor link
Hoi,

Als ik kijk naar de query:

The following query selects all rows with a date_col value from within the last 30 days:

mysql> SELECT something FROM tbl_name
-> WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col;

Dan begrijp ik dit. Ik heb naar aanleidingh van een post op dit forum de volgende query gebruikt:

SELECT * FROM todo WHERE td.td_datumE < DATE_SUB(CURDATE(),INTERVAL 7 MONTH)

To get all the items out of the database table td where the column td_datumE value is within the 7 months...

Maar eigenlijk zou ik graag alle items uit de database halen waar de datum in kolom td_datumE overeenkomt met de datum megegeven in de URL (dit is $colname_td), maar ook alle vanaf 5 dagen voor de datum meegegeven in de URL


$colname_td = "-1";
if (isset($_GET['eventid'])) {
$colname_td = (get_magic_quotes_gpc()) ? $_GET['eventid'] : addslashes($_GET['eventid']);
}

("SELECT * FROM td LEFT JOIN td_cat ON td.td_cat = td_cat.tdcat_id WHERE td_status <> 'closed' AND td_datumE = '%s'", $colname_td);

Hoe moet ik it nu doen? Is er iemand met een idee? De bovenstaande query levert alleen overeenkomstige items op, dus niet ook alle items 5 dagen voor de datum meegegeven in de URL.

Grt.

Kabbi
 
PHP hulp

PHP hulp

22/12/2024 10:05:04
 
K i p

K i p

04/10/2006 13:31:00
Quote Anchor link
waarom doe je

$colname_td = "-1";

?

bedoel je niet

$colname_td--;
of
$colname_td -= 1
;
 
Klaasjan Boven

Klaasjan Boven

04/10/2006 13:44:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
SELECT
     *
FROM
    todo
WHERE
    td.td_datumE  
BETWEEN
    DATE_SUB(CURDATE())
AND
   DATE_SUB(CURDATE() - INTERVAL 5 DAYS)

Zoiets?

GEEDIT IVM FOUTJE
codetags
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 
Kabbi

kabbi

04/10/2006 14:26:00
Quote Anchor link
Hoi,

Ja zoiets alleen ik laat een pagina zien waarbij de datum in een URL variabele wordt meegegeven. Ik kijk bijvoorbeeld bij 2007-05-09 dan wil ik graag alle items zien waarbij td.td_datumE overeenkomt met de url variabele [de datum/dag die ik bekijk], alleen ik wil ook alle items tonen hier welke vanaf 5 dagen eerder bestaan.. [dus td.datumE vergelijken met de URL variabele en dan ook nog eens alle ingevoerde items laten zien 5 dagen voor de URL variabele [in td.td_datumE wordt de data voor een item opgeslagen].

Ik vergelijk het dus niet met de huidige datum maar met de datum meegegeven in de url variabele....

Dit moet wel mogelijk zijn toch? Ik kom er echter niet uit.....

grt.
Kabbi
 
K i p

K i p

04/10/2006 14:28:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
$sql = "SELECT
     *
FROM
    todo
WHERE
    td.td_datumE = '".addslashes($_GET['datum'])."'";
 
Kabbi

kabbi

04/10/2006 14:44:00
Quote Anchor link
hoi,

Nog niet helemaal... de doorgegeven URL variabele datum [bijvoorbeeld 2007-05-09] heb ik in $colname_td. Ik vergelijk de data uit de db met de data in $colname_td [de meegegeven URL variabele waarde, hier: 2007-05-09]. Wat ik nu wil is alle items laten zien waarbij 2007-05-09 overeenkomt in de kolom td.td_datumE, maar ook alle items met een datum tussen 2007-05-14 en 2007-05-09.

M.a.w ik klik op een willekeurige datum deze datum wordt meegegevenin de URL naar het overzichtscherm, op het overzichtscherm wil ik alle items laten zien tot 5 dagen na de datum doorgegeven in de URL vanaf de datum doorgegeven in de url

Ik wil dus elke keer als ik in de agenda kijk bij een willekeurige datum, alle items laten zien welke tussen de gekozen datum en de datum 5 dagen daarna in de database staan....

Het is een beetje ingewikkeld uit te leggen, hopelijk is het duidelijk.
In mijn vorige posts had ik het over 5 dagen ervoor, maar ik wil natuurlijk kijken wat er ook in de agenda staat vanaf de gekozen datum t/m 5 dagen erna....

grt.

Kabbi
 
Klaasjan Boven

Klaasjan Boven

04/10/2006 15:02:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$sql
="
SELECT
     *
FROM
    todo
WHERE
    td.td_datumE  
BETWEEN
    '"
.$colname_td."'
AND
    '"
.$colname_td."'  - INTERVAL 5 DAYS"
?>


Dan moet dat het volgens mij doen
 
Kabbi

kabbi

04/10/2006 15:10:00
Quote Anchor link
Dank je wel...

Zou deze query ook werken?

("SELECT * FROM td LEFT JOIN td_cat ON td.td_cat = td_cat.tdcat_id WHERE td_status <> 'closed' AND td.td_datumE > DATE_SUB(%s,INTERVAL 7 DAY)", $colname_td);

Bovenstaande query geeft geen error maar toch wordt niet alles getoond... vreemd...

Is de query wel goed?

Groet, Kabbi
 
Frank -

Frank -

04/10/2006 15:14:00
Quote Anchor link
Waarom noteer je de query zo rottig? Zie het voorbeeld van Klaasjan hoe je dat moet aanpakken. Hier en daar een enter en een beetje inspringen doet wonderen.

En wat moet %s voorstellen?
 
Kabbi

kabbi

04/10/2006 15:17:00
Quote Anchor link
Hmm, inderdaad. Sorry!
 
Kabbi

kabbi

04/10/2006 15:59:00
Quote Anchor link
Klaasjan, je script werkt perfect!

Thanks a lot!! :)
 
Klaasjan Boven

Klaasjan Boven

04/10/2006 16:33:00
Quote Anchor link
GRaag gedaan
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.