В таблице находятся телепередачи (телепрограмма). Нужно найти телепередачу, которая идет сейчас (в таблице есть столбец time), вывести её, вывести две записи до неё и две после. Предложения?
Я бы выкинул из твоего условия вторую часть. Интуиция и опыт подсказывают, что надо искать вхождение в некий интервал времени, например сейчас-1час и сейчас+1час. Так будет и проще и ближе к реальному выводу результатов. У тебя ведь скорее всего будет некая временная шкала на которой отражаются передачи. Отображаемое временное окно это время от t1 до t2. А не от минус двух передач до плюс двух передач, верно? ))) В итоге останется задача на пересечение двух временных отрезков t1..t2 и время_передачи..время_передачи_плюс_длительность. Код (Text): (cast_start BETWEEN :t1 AND :t2) OR (cast_start+cast_length BETWEEN :t1 AND :t2) Добавлено спустя 3 минуты 57 секунд: Так ты найдешь множество передач, попадающих в окно. Уже при выводе на страницу отмечаешь, цветом или как еще, ту единственную, которая идет сейчас, т.е.для которой Код (Text): $now >= $cast_start && $now <= $cast_start + $cast_len
Вообще я уже начал делать) И сделал немного по другому. Код (Text): while ($row2 = mysql_fetch_assoc($sql2)) { if(date("H:i:s") > $old_time && $row2['time'] > date("H:i:s")){ $prev = $row2['Id']-2; $next = $row2['Id']+3; for($x = $prev; $x < $next; $x++){ $rel2[] = $row2; } } $old_time = $row2['time']; } Но конечно, у меня второй массив $rel2 заполняется одинаковыми записями, в которых нужный мне TIME. Расскажите, пожалуйста, как работает то, что вы написали. Я даже не знаю как тут воспользоваться поиском Добавлено спустя 2 минуты 25 секунд: И вообще я рассчитывал сделать всё-таки от -2 до 2 передач Не знаю, мб я конечно не прав)
Держите в базе time(), а проверку назначайте в date() так и сверять будет легче. И быстрее, не будет костылей, всяких. типо: Код (PHP): Сегодня: date('d.m.Y',$row['date']); if(time()>=$row['date']) { }
Да я уже нашел какая телепередача идет сейчас. Мне нужно добавить в массив две записи ДО записи с $Id и ПОСЛЕ записи с $Id Как выбрать из двумерного массива запись, в котором я знаю один столбец (id)?
Что это? Имею двумерный массив. В этом массиве есть столбец Id. Мне нужно достать из него запись с конкретным значением Id. Как? Мне кажется, что Немного не то. Уж извиняйте...
Дурно! Я вас не понимаю... Что значит с конкретным значением? Разбирайте массив и сверяйте с тем, что щас идет за передача, я не знаю, что вы там изобретаете. Что за массив?! Откуда он и где он используется!? Если это $row2 который, то не вижу вообще никакого смысла, ибо у вас сравнивается по дате и выводится эта передача которая в данный момент и которых передач нет, все в else уходят.
Ну есть массив. Двумерный. Типа таблицы в MySQL. В этом массиве тоже есть столбец Id. Нужно достать из этого массива запись, у которой столбец Id равен некому $Id. Т.е. нужен эквивалент Код (Text): SELECT * FROM `table` WHERE `Id` = $Id только для массива
Все понял. У меня как-то странно достаются записи из БД. Если проблема не в этом - отпишусь. Добавлено спустя 2 минуты 52 секунды: Большой. Ага. Всё та же ошибка.
Код (PHP): $array=array(0=>array('id'=>1)); foreach($array as $key => $value) { if($value['id']==$id) { } }