Регистрация
Вход через соцсети
Восстановление пароля

Выборка полей из базы с условием.

Новый топик
Страницы: 1  |  2  |  3
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 и решать все насущные задачи пользователей через принудительные акты премирования Фонда! улыбка))
198 196 2006-04-24 14:31:58 8520
Страницы: 1  |  2  |  3
Описание проекта