Autor | Zpráva | ||
---|---|---|---|
capricorn Profil |
#1 · Zasláno: 1. 5. 2011, 11:58:06
Zdravím,
mám následující tabulku CREATE TABLE IF NOT EXISTS `opening_hours` ( `id` int(11) NOT NULL, `day` tinyint(4) NOT NULL, `time_open` time DEFAULT NULL, `time_close` time DEFAULT NULL, `time_close_pause` time DEFAULT NULL, `time_open_pause` time DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; INSERT INTO `opening_hours` (`id`, `day`, `time_open`, `time_close`, `time_close_pause`, `time_open_pause`) VALUES (3, 0, NULL, NULL, NULL, NULL), (3, 1, '08:00:00', '18:00:00', '12:00:00', '12:30:00'), (3, 2, '08:00:00', '18:00:00', '12:00:00', '12:30:00'), (3, 3, '08:00:00', '18:00:00', '12:00:00', '12:30:00'), (3, 4, '08:00:00', '18:00:00', '12:00:00', '12:30:00'), (3, 5, '08:00:00', '18:00:00', '12:00:00', '12:30:00'), (3, 6, NULL, NULL, NULL, NULL); a potřebuji, aby dneska se nevypsal žádný řádek, jelikož je neděle(0), ale zítra např. v 9.00 hodin se řádek vypsal, protože bude pondělí (1) a aktuální čas bude v rozmezí mezi 8.00 a 18.00 hod. |
||
David1256 Profil |
#2 · Zasláno: 1. 5. 2011, 14:02:08
Tak ten výpis dat ošetři nějakou podmínkou. Když nechceš, aby se ti data v neděli vypisovala dej podmínku před výpis třeba takto.
$date=Date("w"); if ($date!=0) { výpis dat } A takhle si tam "nasázej" ty podmínky, jak potřebuješ. |
||
panther Profil |
#3 · Zasláno: 1. 5. 2011, 14:07:58
David1256:
a když změní otevíračku v DB, bude muset překopat celý script. To by to v DB nemusel mít vůbec. capricorn: filtruj to klidně už v selectu, http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format, případně potom i http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between |
||
capricorn Profil |
#4 · Zasláno: 1. 5. 2011, 14:18:46
David1256:
Díky, ale to já nepotřebuji, v dotaze si vyhledám všechny řádky např. pro pondělí a potřebuji další podmínku, která vypíše jen řádky, které odpovídají aktuálnímu času. panther: S filtrací si vím rady, ale nevím si rady s tím časovým rozmezím. SELECT * FROM opening_hours WHERE DAY = DATE_FORMAT( NOW( ) , '%w' ) A jak dál? |
||
panther Profil |
#5 · Zasláno: 1. 5. 2011, 14:42:43 · Upravil/a: panther
capricorn:
SELECT * FROM `opening_hours` WHERE DAY = DATE_FORMAT( NOW() , '%w' ) AND ( DATE_FORMAT(NOW(), '%H: %i: %s') BETWEEN `time_open` and `time_close_pause` OR DATE_FORMAT(NOW(), '%H: %i: %s') BETWEEN `time_open_pause` and `time_close` ) |
||
capricorn Profil |
#6 · Zasláno: 1. 5. 2011, 17:36:36
panther:
Díky. Po menší úpravě to vrací správné řádky. |
||
Časová prodleva: 13 let
|
0