Toon posts:

[php/mysql] TO_DAYS functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik las op mysql.com in de documentation iets over de TO_DAYS functie TO_DAYS en ik dacht van hee dat is precies wat ik zoek en ging aan de slag...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$query_facturen = "select * from facturen where klant_id=".$row_selectuser["klant_id"]."";
if( isset( $periode ) && isset( $status ) ) {
    if( $periode == "2weken" ){
      $query_facturen .= " and TO_DAYS( NOW() ) - TO_DAYS( datum_plaatsing ) <= 14";
    }elseif( $periode == "maand" ){
    $query_facturen .= " and TO_DAYS( NOW() ) - TO_DAYS( datum_plaatsing ) <= 30";
    }elseif( $periode == "kwartaal" ){
    $query_facturen .= " and TO_DAYS( NOW() ) - TO_DAYS( datum_plaatsing ) <= 90";
    }elseif( $periode == "jaar" ){
    $query_facturen .= " and TO_DAYS( NOW() ) - TO_DAYS( datum_plaatsing ) <= 365";
    }

    if( $status == "nnb" ){
    $query_facturen .= " and status = 2";
    }elseif( $status == "betaald" ){
    $query_facturen .= " and status = 3";
    }elseif( $status == "beide" ){
    $query_facturen .= " and status <> 1";
    }
}

nu is het datum_plaatsing veld een date_time veld en waarschijnlijk gaat daarom de TO_DAYS() functie ook in de soep.

Hij geeft namelijk geen errors maar ik krijg ook records terug van 18-4-2002 als ik hem nu run. ( 3-6-2002 )

of doe ik iets heel anders fout?

  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

wat is de query als je um uitvoert echo $query_facturen; dus...

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Ik zie zo ook geen fout, misschien klopt $periode wel niet?

[beetje offtopic]
Maar ff een andere tip, ik denk (?) dat dit iets effectiever is (omdat TO_DAYS(NOW()) 1x wordt aangeroepen):
code:
1
and TO_DAYS( datum_plaatsing ) >= TO_DAYS(NOW()) -14

Maar dit weet ik eigenlijk niet zeker :+ kan iemand vertellen of dit zo is?

Verwijderd

Topicstarter
echo $query_facturen
geeft deze query:
code:
1
select * from facturen where klant_id=4321 and TO_DAYS( NOW() ) - TO_DAYS( datum_plaatsing ) <= 14 and status = 2

deze query is als de periode 2weken is en de factuur niet betaald.

volgens mij ziet de query er logisch uit maar hij geeft als output een record met als datum_plaatsing 18-4-2002 dus dat klopt niet

Verwijderd

Topicstarter
orphix jou stukje ziet er ook wel okee uit, sounds logisch ga hem ff testen :)

  • whoami
  • Registratie: December 2000
  • Laatst online: 11:04
Zet nog eens extra haken:
zo dus:
code:
1
(TO_DAYS(Now) - TO_DAYS(datum_plaatsing)) <= 14

https://fgheysels.github.io/


Verwijderd

Topicstarter
mhhh volgens mij is het niet de query die de soep in gaat maar heb ik wat records niet zo heel netjes in de database gezet, ff restylen...

[update]
yes thnx guys het werkt!!! :)
Pagina: 1