|
|
19.04.2006, 16:08
|
|
Гость
Гость
|
Добрый день.
Встала такая проблема.
Есть архив гостевой книги. Архив построен по датам. Т.е. при открытии архива за какой-либо день, подается переменная $date.
Над списком сообщений за эту дату выводится в качестве навигации список всех доступных дат за текущий месяц. Каждая дата является ссылкой на соответствующий день архива...
Выводится список этих дат следующим образом:
<table width=100% border=0 cellspacing=1 cellpadding=3 bgcolor=#990000>
<tr bgcolor=#333333><td width=50 nowrap><nobr><b><font color=#ffffff>Выберите дату:</font></b></nobr></td>
".listQuery("SELECT DATE_FORMAT(date,'%Y') AS year, DATE_FORMAT(date,'%m') AS month, DATE_FORMAT(date,'%d') AS day FROM Message$classID WHERE DATE_FORMAT(date,'%Y')='".substr($date,0,4)."' AND DATE_FORMAT(date,'%m')='".substr($date,5,2)."' AND Subdivision_ID=314 AND Sub_Class_ID=178 GROUP BY DATE_FORMAT(date,'%d') ORDER BY date","<td width=10 bgcolor=#990000><a href='".$current_sub[Hidden_URL]."$data[year]/$data[month]/$data[day]/'><font color=#ffffff>$data[day]</font></a></td>")."<td width=100%></td>
</tr></table>
Хотелось бы сделать так, чтобы текущая дата архива выделялась другим цветом!
Т.е. я понимаю, что сделать это нужно при отдаче данных из запроса примерно таким образом:
".opt_case($date==[какое-то условие],"<td width=10 bgcolor=#990000><a href='".$current_sub[Hidden_URL]."$data[year]/$data[month]/$data[day]/'><font color=#ffffff>$data[day]</font></a></td>","<td width=10><a href='".$current_sub[Hidden_URL]."$data[year]/$data[month]/$data[day]/'><font color=#ffffff>$data[day]</font></a></td>")."
А вот какое именно условие нужно задать в функции (какое равенство значений проверить), чтобы выделилась таки требуемая дата - подскажите, пожалуйста!
Заранее признателен!
|
|
|
20.04.2006, 12:28
|
|
VitAShka
БГТУ
Зарегистрирован: 2005-02-09
Сообщений: 49
|
У меня была похожая проблема, попробуйте рассмотреть вот эту тему:
http://netcat.ru/support/forum/development/message_8767.html
BSTU
|
|
|
20.04.2006, 12:54
|
|
Гость
Гость
|
Как эта тема относится к моему вопросу?
Принцип проверки мне и так понятен...
Я не могу понять другого - с чем мне сравнивать поле $date при отдаче данных из базы при выводе...
|
|
|
20.04.2006, 14:09
|
|
Гость
Зарегистрирован: 1970-01-01
Сообщений: 665
|
".listQuery("SELECT CURRENT_DATE as curday, DATE_FORMAT(date,'%Y - %m - %d') AS just_date, DATE_FORMAT(date,'%Y') AS year, DATE_FORMAT(date,'%m') AS month, DATE_FORMAT(date,'%d') AS day FROM Message$classID WHERE DATE_FORMAT(date,'%Y')='".substr($date,0,4)."' AND DATE_FORMAT(date,'%m')='".substr($date,5,2)."' AND Subdivision_ID=314 AND Sub_Class_ID=178 GROUP BY DATE_FORMAT(date,'%d') ORDER BY date","<td width=10 bgcolor=#".opt_case($data[curday]==$data[just_date],"000000","990000")."><a href='".$current_sub[Hidden_URL]."$data[year]/$data[month]/$data[day]/'><font color=#ffffff>$data[day]</font></a></td>")."
smthng like this
|
|
|
20.04.2006, 14:17
|
|
Гость
Гость
|
Вот это уже дело))
Пошел пробовать...
|
|
|
20.04.2006, 15:11
|
|
Гость
Гость
|
Дим, что-то не так...
Все даты все-равно воспринимаются не как текущие...
Т.е. выбираю, например, 12 апреля - а она в переменной $date есть (подается на страницу), а в списке дат текущей не становится...
Вообще, зачем лишний выбор параметра CURRENT_DATE as curday? Разьве он нужен?
Можно ли проверять поданную переменную $date на данную страницу и сравнивать ее с DATE_FORMAT(date,'%Y - %m - %d') AS just_date?
Такое сравнение получится?
И как его прописать?
|
|
|
20.04.2006, 16:04
|
|
Гость
Гость
|
Описанное мною сравнение не проходит - все-равно все даты одним цветом идут.
Дим, помоги, пожалуйста...
|
|
|
20.04.2006, 16:56
|
|
Гость
Гость
|
Дим, а переменная CURRENT_DATE она отражает системную текущую дату или ту дату, которая подана в переменной? Откуда выбирается CURRENT_DATE, если в таблице этого шаблона нет такого поля?
Кроме того, в global у меня этой переменной нет...
Она системная?
|
|
|
20.04.2006, 17:20
|
|
Гость
Гость
|
Дим, перефразирую вопрос: переменная CURRENT_DATE принимает значение, поданное на страницу переменной $date?
Если принимает, то почему твой пример не работает, я не могу понять.
Если не принимает, то тогда надо сравнивать ".opt_case(substr($date,8,2)==$data[day],"#990000","#333333")."
Однако, это сравнение нифига тоже не дает...
|
|
|
20.04.2006, 17:28
|
|
Гость
Гость
|
Дим, пока тебя дождешься...
Я уже проверил - ".listQuery("SELECT CURRENT_DATE as curday, DATE_FORMAT(date,'%Y - %m - %d') AS just_date FROM Message3 WHERE Subdivision_ID=314 AND Sub_Class_ID=178 GROUP BY DATE_FORMAT(date,'%d') ORDER BY date limit 1","$data[curday]")."
На любой странице отдается ТЕКУЩЕЕ РЕАЛЬНОЕ ЧИСЛО. Т.е. переменная date в CURRENT_DATE не передается...
Соотвественно, проверять надо по-другому... Как???
|
|
|
20.04.2006, 18:01
|
|
Гость
Гость
|
офтоп: Предлагаю создать Фонд Димы! В качестве контактов указать его WMZ и решать все насущные задачи пользователей через принудительные акты премирования Фонда! ))
|