Форумы портала PHP.SU » » Работа с СУБД » Проблема с датой и счетчиком

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

1. eko24 - 10 Июня, 2011 - 00:22:05 - перейти к сообщению
Доброе время суток.
Столкнулся с следующей проблемой:
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.
Если , кому надо скрипт можете юзать в своих целях.
2. DeepVarvar - 10 Июня, 2011 - 01:09:49 - перейти к сообщению
Каждый раз после подключения к БД выполнять:
mysql_query("SET TIME_ZONE='+03:00'"); или другие нужные часы
А дальше работать как со своим родным временем
3. eko24 - 11 Июня, 2011 - 23:21:13 - перейти к сообщению
Спасибо - помогло !

 

Powered by ExBB FM 1.0 RC1