Проблем с извличане на Current Event / Част 2

redbulldog

Registered
Здравейте отново! За съжаление избързах и затворих предишната тема преди да задам още един въпрос свързан със заявката от тази тема:
http://web-tourist.net/forum/viewtopic.php?t=125911

Въпросът ми е: Как да редактирам така заявката, че да показва събитието, което върви в момента.

[sql]$sql = "select * from tvguide_schedules where `tvId` in ('1', '2', '4', '5', '6') AND date = " .strtotime(date('d.m.Y'))." AND time >= ".now()." GROUP BY `tvId` ORDER BY `time` ASC";[/sql]

Благодаря предварително!
 
Така не става:
[sql]$sql = "select * from tvguide_schedules where `tvId` in ('1', '2', '4', '5', '6') AND date = " .strtotime(date('d.m.Y'))." AND time = ".now()." GROUP BY `tvId` ORDER BY `time` ASC";[/sql]

Така не става също
[sql]$sql = "select * from tvguide_schedules where `tvId` in ('1', '2', '4', '5', '6') AND date = " .strtotime(date('d.m.Y'))." AND time <= ".now()." GROUP BY `tvId` ORDER BY `time` ASC";[/sql]
 
Какво разбираш под не става, връща грешни резултати или връща грешка?
Също, това date = " .strtotime(date('d.m.Y')).", сигурен ли си че работи както си мислиш :idea:
 
Не връща никакъв резултат, а за това не съм убеден.
Датата ми се образува от тук:
PHP:
mktime(0, 0, 0, date("m"), date("d") + $i, date("y"));
и се запизсва в базата.

Мисля си, че това горе е равно на това:

PHP:
strtotime(date('m.d.y'));

Но и с което от двете да пробвам, то резултата е същия.
P.S. Когато в заявката използвам <= ми дава предаванията в 0:00 и 01:00
 
Много груба грешка да записваш дата с timestamp, а това
[sql]date = " .strtotime(date('d.m.Y'))."[/sql] си го представи така
[sql] date = '30.12.2013 00:00:00'[/sql].
За да работи, ще трябва и полето дате да го направиш по-голямо или равно.
А по-оптималният вариант е просто да смениш типа на колоната, и да записваш просто дата
PHP:
date("Y-m-d")
 
Благодар ти отново за помощта, но открих идеалният вариянт след малко вкарана мисъл..

Ето и решението ми

[sql]SELECT id, time,
(SELECT MIN(time) FROM idtimes sub
WHERE sub.id > main.id AND sub.time > main.time) as nxttime
FROM idtimes AS main[/sql]

Просто вземам следващото предаване и неговият час, а часа на следващото предаване означава край на настоящото и просто с now и малко сравнения нещата се получиха.
 

Back
Горе