|  |   | 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 и решать все насущные задачи пользователей через принудительные акты премирования Фонда!  )) |