[PHP/SQL] Niet vandaag maar gister

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
$sql=mysql_query("SELECT * FROM gebruiker WHERE gebruiker_betaaldtot>DATE_SUB(NOW(),INTERVAL 1 DAY) AND gebruiker_email = '".$gebruiker['gebruiker_email']."'") or die(mysql_error());   
if (mysql_num_rows($sql) >0) {   
echo "Betaald";
} else {
echo "Niet betaald";
?>


Als datum gelijk is aan vandaag (notatie is yyyy-mm-dd) krijg je melding wel betaald, maar ook vandaag moet verlopen datum zijn, hoe wijzig ik dat?

Iemand zei me al:
Iemandopeenanderforum schreef:
Vervang
code:
1
gebruiker_betaaldtot>DATE_SUB(NOW(),INTERVAL 1 DAY)

Door
code:
1
gebruiker_betaaldtot>=DATE_SUB(NOW(),INTERVAL 1 DAY)
Maar dit had geen enkel effect. daardoor werkte zelfs de hele controle nietmeer

[ Voor 7% gewijzigd door Verwijderd op 30-03-2008 21:57 ]


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Gewoon een dag bij vandaag optellen?
[code=sql]SELECT DATE_ADD( NOW( ) , INTERVAL 1 DAY ) ;[/]
[pre]2008-03-31 21:35:21[/]

nvm, ik ben niet wakker meer...

[ Voor 14% gewijzigd door mithras op 30-03-2008 21:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mithras schreef op zondag 30 maart 2008 @ 21:35:
Gewoon een dag bij vandaag optellen?
[code=sql]SELECT DATE_ADD( NOW( ) , INTERVAL 1 DAY ) ;[/]
[pre]2008-03-31 21:35:21[/]

nvm, ik ben niet wakker meer...
Please word wakker!

Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:23

pistole

Frutter

1) je moet bij de buren zijn :)
2) als je een NOW() gaat vergelijken met een datum zonder tijd, dan zal je van de NOW() ook de tijd moeten afsnoepen

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe moet het dan zoals ik het scriptje nu heb? Ik wil wat bestaat nu kunnen wijzigen zonder de database over de kop te gooien :|

[ Voor 79% gewijzigd door Verwijderd op 30-03-2008 21:48 ]


Acties:
  • 0 Henk 'm!

  • pistole
  • Registratie: Juli 2000
  • Laatst online: 10:23

pistole

Frutter

hallo, beetje zelf nadenken kan geen kwaad, denk ik? Ik geen een tip, het is aan jou om daar iets mee te doen.
edit:
grr stiekum snel je post wijzigen :p

Verder zou het helpen om je probleem eerst onder woorden te brengen ipv gelijk code neer te gooien.
edit:
bovenstaand geldt nog steeds

edit:
@hieronder: dit heeft niets met php te maken maar met (my)sql

[ Voor 17% gewijzigd door pistole op 30-03-2008 21:50 ]

Ik frut, dus ik epibreer


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gaf er ook een beschrijving bij.. dus dat zou toch duidelijk moeten zijn lijkt me? Of wat wil je weten precies..

EN ik ben geen php expert daarom vraag ik het niet voor niets op een forum

[ Voor 25% gewijzigd door Verwijderd op 30-03-2008 21:49 ]


Acties:
  • 0 Henk 'm!

  • blaatkipje
  • Registratie: Maart 2007
  • Laatst online: 07-09 09:38
DATE_SUB(CURDATE(), INTERVAL 1 DAY) werkt misschien wel

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
blaatkipje schreef op zondag 30 maart 2008 @ 21:49:
DATE_SUB(CURDATE(), INTERVAL 1 DAY) werkt misschien wel
Idem, vandaag word er nog gezegd betaald maar met een datum van gister nietmeer.. het moet vandaag ook niet betaald melden!

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
*KICK*
WEB >>> PRG

Verder vind ik de eigen inzet in dit topic wat aan de lage kant; graag zou ik eens zien met welke data je test, en hoe je queries er nu exact uit zien. Staat de datum van je server eig'k wel goed?

[ Voor 84% gewijzigd door RobIII op 30-03-2008 21:58 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Datum van mijn server staat perfect, welliswaar 3 minuten achter maar geen dag.. "30-03-2008 21:59:32"

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En de rest? Of is het de bedoeling dat wij je he-le-maal aan het handje gaan houden? Want in dat geval zit dit topic zo dicht...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Heb een aantal dingen geprobeerd nog bijv:

code:
1
$sql=mysql_query("SELECT * FROM gebruiker WHERE gebruiker_betaaldtot > (CURDATE()-1) AND gebruiker_email = '".$gebruiker['gebruiker_email']."'") or die(mysql_error());

maar gaf ook niet het gewenste resultaat..

gebruiker_betaaldtot is trouwens een DATE veld met standaard 0000-00-00 als waarde, mocht dit helpen bij de info

[ Voor 26% gewijzigd door Verwijderd op 30-03-2008 22:09 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Probleem opgelost, bij aanmelden gewoon datum 0000-00-00 invullen, heel omslachtig en dom maar het werkt wel, bedankt voor alle moeite iig :)

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Volgens mij heb je het probleem zeker niet opgelost, sterker nog, je snapt het probleem helemaal nog niet.
Verwijderd schreef op zondag 30 maart 2008 @ 21:55:
Idem, vandaag word er nog gezegd betaald maar met een datum van gister nietmeer.. het moet vandaag ook niet betaald melden!
Ok dus als in een rij de datum van vandaag staat, wil je deze rij juist niet selecteren, right? Wáárom vergelijk je dan met > de huidige datum - 1 dag? Schrijf die query eens in een natuurlijke taal en vergelijk dat met de query die je hebt.

Dat hele gedoe met 'gister' (zie topictitel) komt gewoon nergens in je probleemstelling terug, je wilt enkel data na vandaag selecteren. 8)7

[ Voor 11% gewijzigd door Voutloos op 31-03-2008 08:15 ]

{signature}

Pagina: 1