Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с датой и счетчиком

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Конфликт с временем на сервере
eko24
Отправлено: 10 Июня, 2011 - 00:22:05
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Доброе время суток.
Столкнулся с следующей проблемой:
PHP:
скопировать код в буфер обмена
  1.  
  2. include("db.php");
  3. $cur_date = date('j');
  4. $all_select = mysql_query("SELECT * FROM visits ORDER BY id DESC");
  5. $last_date = mysql_fetch_array($all_select);
  6. $last = $last_date['date'];
  7. $last_id = $last_date['id'];
  8. $last_value = $last_date['date'];
  9. echo $cur_date."|".$last."<br>";
  10. if($last == $cur_date)
  11. {
  12. $select_cur_date = mysql_query("SELECT * FROM visits WHERE id='$last_id'") or die ("sel cur date fale !:/n".mysql_error());
  13. $current = mysql_fetch_array($select_cur_date) or die ("cur date fetch fale !");
  14. $new = $current['visits'] + 1;
  15. $update_cur_date = mysql_query("UPDATE visits SET visits='$new' WHERE id='$last_id'") or die ("update cur date fale !:/n".mysql_error());
  16. }
  17. else
  18. {
  19. $new_field = mysql_query("INSERT INTO visits (date, visits) VALUES ('$cur_date', '1')") or die ("new row ins fale !:/n".mysql_error());
  20. }
  21.  

Данный скрипт берет время сервера и последнею дату в таблице , если они совпадают - увеличивает значение , а если они не равны (грубо говоря наступил новый день) , то создает новое поле, и так далее.
проблема в том что сервер расположен в Америке и время там на 8 часов меньше чем у меня , и он создает новое поле , только тогда , когда у них новый день.
Как сделать так , чтобы новое поле создавалось ориентируясь на мою дату ?
Заранее спасибо
P.S.
Если , кому надо скрипт можете юзать в своих целях.
 
 Top
DeepVarvar Супермодератор
Отправлено: 10 Июня, 2011 - 01:09:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Каждый раз после подключения к БД выполнять:
mysql_query("SET TIME_ZONE='+03:00'"); или другие нужные часы
А дальше работать как со своим родным временем
 
 Top
eko24
Отправлено: 11 Июня, 2011 - 23:21:13
Post Id



Гость


Покинул форум
Сообщений всего: 72
Дата рег-ции: Март 2011  


Помог: 0 раз(а)




Спасибо - помогло !
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB