Autor | Zpráva | ||
---|---|---|---|
visionic Profil * |
#1 · Zasláno: 14. 2. 2016, 14:14:13
Ahoj,
chtěl jsem se zeptat, když v mysql porovnávám sloupec (date) s now(). To znamená pokud sloupec vetsi nez hodnota now stává se člen premium, ale chtěl bych vytvořit, že chci přidat sloupci navíc půl roku. Napadlo mě přepočítat to na vteřiny a přidat to, ale chyba nastává při přestupném roce nebo v samotném únoru, ne vždy má měsíc 30 dnů. Jak se tohle řeší? Děkuji za pomoc. |
||
juriad Profil |
#2 · Zasláno: 14. 2. 2016, 14:22:50
Zamysli se nad definicí půl roku. Co je půl rok? Je to
floor(365/2) dnů, je to 6 měsíců?
Mysql umí například příčítat date_add(sloupec, INTERVAL 6 MONTH) .
|
||
visionic Profil * |
#3 · Zasláno: 14. 2. 2016, 15:24:22 · Upravil/a: Moderátor (editace znemožněna) 14. 2. 2016, 16:27:55
juriad:
první příklad bych viděl vcelku logický, ale to co jsem potřeboval je přičítat date v mysql, takže mi to velice pomohlo. |
||
visionic Profil * |
#4 · Zasláno: 14. 2. 2016, 18:21:37
juriad:
Jsem asi úplně tupý. Nějak nedokáži sestrojit UPDATE mysql, pomocí toho date_add. mysql_query("UPDATE $tabulka SET member = 'date_add(member, INTERVAL 6 MONTH)' WHERE id = '$id' LIMIT 1"); |
||
juriad Profil |
Odstraň všechny apostrofy.
Je to chytré přímo měnit tu hodnotu? Není lepší přidat nový záznam, který říká, že je členem od někdy do někdy, a kontrolovat, zda existuje alespoň jeden záznam, který vyhovuje aktuálnímu datumu? Tak bys znal historii všech členství na rozdíl od nějaké hodnoty, u které ani nevíš, jakým výpočtem vznikla. |
||
lionel messi Profil |
#6 · Zasláno: 14. 2. 2016, 18:29:29
visionic:
date_add je v tomto kontexte MySQL funkcia, nie reťazec, takže apostrofy preč. $id je zase číslo. Ešte pozor na chýbajúce escapovanie. |
||
visionic Profil * |
juriad:
Nebráním se žádné metodě. Potřebuji docílit, že první platba (balíček 1/2 roku) přes API, mu nastaví členství od data nyní po dobu 6 měsíců a poté prodloužení, přičte k hodnoté stávající dalších 6 měsíců. lionel messi: Escapování zde je asi nepotřebné, nikde se neuváděj hodnoty přes formulář POST a ani GET, jediné je IDčko, které je ošetřeno od ESCAPOVÁNÍ a zároveň se nelze dostat na ID jiného uživatele. Jestli se pletu, samozřejmě přijmu radu na ošetření. Děkuji. jinak, pokud hacker bude chtít útočit, tak i hodně zabezpečenou stránku položí .). Takže všude mám převody na entity a nahrazování uvozovek,středníků,... v případného vrácení. Takže běžná ochrana tam bude. |
||
Časová prodleva: 9 let
|
0