Mysql restrictie

Status
Niet open voor verdere reacties.

lijn76

Nieuwe gebruiker
Lid geworden
29 jun 2012
Berichten
4
Ik heb een MySQL database met een een tabel waarin een veld DATUM zit. (type DATE)
Ik wil dat men hier ALLEEN datums kan invoeren, die tussen date()+7 en date()+365 liggen. (vandaag + 7dagen en vandaag +365 dagen)
Daarbuiten mogen datums niet opgeslagen worden.
Met PHPAdmin kom ik hier niet uit.
Ik ben een newby met MySQL en PHP, maar met een MsAccess database is dit heel gemakkelijk.
Wie kan me helpen met de oplossing?
 
Laatst bewerkt:
Dus je moet even zoeken hoe je aam de datum +7 en +365 komt.

Dan kan je een if statement gebruiken:
$datum7= ....;
$datum365= ...;
If($DATUM >$datum7 && $DATUM <$datum365){
Hier je insert query
}
 
bedoel ik dit?

Even voor de duidelijkheid.
Op een datum (zeg even 30-06-2012) vult iemand een aanvraag in voor een snipperdag.
Vult hij dan een datum in vóór 06-07-2012 of ná 30-06-2013, dan mag het record niet opgeslagen worden.
Ik wil het record dan dus helemaal niet zien, vanwaar dan een query?
In MsAccess kan je dan gewoon in het veld een validatie regel zetten, dat zoek ik dus ook.
 
Als hij binnen 7 dagen is moet hij niet worden opgeslagen. Toch?

Als hij NA 7 dagen is moet hij wel worden opgeslagen. Hiervoor is de query.
 
Het gegeven van vóor en ná 7 dagen is correct.
Ik snap nu wat je bedoeld en ga het proberen uit te vogelen.
Wel jammer dat je geen validatie regels direct in de database kunt maken

Bedankt !
 
Dus je moet even zoeken hoe je aam de datum +7 en +365 komt.

Dan kan je een if statement gebruiken:
$datum7= date()+7; ? of >curdate()+7
$datum365= date()+365; ? of <curdate()+365
If($DATUM >$datum7 && $DATUM <$datum365){
Hier je insert query
}

Daar kom ik aan door datum >=date()+7 and <=date()+365 als validatieregel in te voeren (in msaccess)
Ik ben er een hele tijd niet meer mee bezig geweest, maar heb het ook nog steeds niet gevonden.
 
Laatst bewerkt:
In een normale database zou je dit met een CHECK CONSTRAINT kunnen doen, maar MySQL is geen normale database.

Het enige wat je in MySQL kunt doen is een trigger maken en daarin je controle doen. Voldoet de waarde niet dan moet je iets van een exception forceren.

http://stackoverflow.com/questions/2538786/how-to-abort-insert-operation-in-mysql-trigger

ps: de datum controleren kan in MySQL gewoon zo: datum BETWEEN NOW() + 1 WEEK and NOW()+1 YEAR
Zoek wel even na wat MySQL verstaat onder 1 YEAR, want jaren zijn niet altijd 365 dagen lang.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan