

mysql - automatický update a kontrola data
Dobrý den, řeším jeden problém: dělám jako BP jeden web (php) s databází (mysql) a potřebuji vyřešit toto:
Mám tabulku kde kromě jiných atributů je atribut "stav" a atribut "datum"..obojí je vyplněno a já potřebuju aby až nastane to datum, které je ve sloupci "datum" uloženo, databáze sama změnila ve stejném řádku ve sloupci "stav" hodnotu...
názorný příklad:
id | stav | datum |
---------------------------------
1 | připraveno | 2012-03-02 |
2 | probíhá | 2012-02-22 |
3 | připraveno | 2012-03-04 |
---------------------------------
tedy v 0:00 2. března 2012 potřebuju, aby se sama změnila hodnota "stav" u id 1 na probíhá a to stejné u id 3 4. března 2012...
Moc děkuji za pomoc
Zabudni na eventy, triggre a podobné prasačiny. Na toto ti stačí jednoduchý select, ako tu už niekoľko razy bolo spomenuté.
dobře, jednoduchý select...ok...jsem zvědavej jak selectem budu updatovat tabulku...
protože první co mi u obhajoby vytknou je: "Proč při každém přístupu na tuto stránku kontrolujete stav položky v databázi (a případně měníte stav)? Vždyť to zbytečně moc zatěžujete server...nešlo použít něco jiného?"
EDIT:PRávě jsem zjistil, že eventy podporuje databáze myslq od verze 5.1.xxx, ale na mém notebooku i na školní serveru je verze 5.0.9xx, takže nic...takže se mám na co vymluvit a udělám si na to v php funkci...
Prečo by si chcel selectom updatovať tabuľku? Prečo by si chcel vôbec čímkoľvek updatovať tabuľku? Veď v tomto prípade potrebuješ len čítať z tabuľky. A na to je select (prípadne si nad tým môže spraviť view, ale imho v tomto prípade je to zbytočnosť).
Ak by si to obhajoval u mňa, tak prvé čo by som sa spýtal by bolo, prečo si sa rozhodol použiť trigger, event alebo cron. A nech by si odpovedal čokoľvek, už by som si myslel svoje.
Načo tam vôbec potrebuješ stĺpec stav? Veď stav objektu je popísaný tými dátumami platnosti od-do a indikátorom, či bolo hlasovanie predčasne ukončené. Takže v tom selecte nepotrebuješ ani case. Navyše, o reprezentácii stavu textovým reťazcom by sa tiež dalo diskutovať.
Ano, právě že to porovnávání dle data mám teď tak udělané - pokud datum počátku hlasování je/bylo a zároveň datum ukončení bude/je, tak je možné hlasovat...
A ten stav je právě to předčasné ukončení...(předělám na netextový)...sice jsem mohl předčasně ukončit hlasování tak, že bych updatoval konečné datum, jenže já potřebuji aby i po ukončení bylo vidět nastavené původní datum od-do...
A právě jsem si myslel, že když by databáze sama vždy v noci zkontrolovala to rozmezí data a příp.změnila podle toho stav, tak při hlasování by stačilo pro zobrazení jen obyč. select where stav neukončená...a odpadlo by nějaké vyhodnocování apod...
ale ok-nechám to tak jak mám no...když je to lepší...