Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 02.07.2015
Сообщений: 68
1

Обработка времени UNIX

06.11.2016, 18:24. Показов 553. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток вот столкнулся с проблемой. Вот есть код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
    $cronkey = 'eliteser_CsStats';
    if (empty($_GET['key']) OR !empty($_GET['key']) AND $_GET['key'] != $cronkey)
    {   
        exit('Ну сюда то тебя мы уж точно не подпустим.');
    }
    
    $link = dbconnect('localhost', 'имя базы', 'пароль', 'название таблицы');
    $sql = dbquery('SELECT * FROM `название таблицы`');
    $i=0;
    if(mysql_num_rows($sql)>0)
    {
        while($r=mysql_fetch_array($sql))
        {
                        if ($r['lasttime']+86400 <= time())
            {
                $i++;
                dbquery('UPDATE `csstats_players` SET `skill`= '.$r['skill'].' - 3 WHERE `id` = '.$r['id'].'');
            }   
            if ($r['lasttime']+604800 <= time())
            {
                $i++;
                dbquery('UPDATE `название таблицы` SET `skill`=100 WHERE `id` = '.$r['id'].'');
            }   
        }
        echo 'изменено строк '.$i.'';
    }
    // MySQL функции
    function dbquery($query) {
        $result = @mysql_query($query);
        if (!$result) {
            echo mysql_error();
            return 0;
            } else {
            return $result;
        }
    }
    function dbarray_fetch($query) {
        $result = @mysql_fetch_array($query);
        if (!$result) {
            echo mysql_error();
            return 0;
            } else {
            return $result;
        }
    }
    function dbconnect($db_host, $db_user, $db_pass, $db_name) {
        $db_connect = @mysql_connect($db_host, $db_user, $db_pass);
        $db_select = @mysql_select_db($db_name);
        //mysql_query("SET NAMES 'utf8'");
        if (!$db_connect) {
            die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Не могу подключиться к MySQL</b><br />".mysql_errno()." : ".mysql_error()."</div>");
            } elseif (!$db_select) {
            die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>НЕ могу подключиться к MySQL базе данных</b><br />".mysql_errno()." : ".mysql_error()."</div>");
        }
    }
    
    mysql_close();
?>
В базе данных поле lasttime ( когда был последний раз в сети) хранится в UNIX формате времени.
Мне необходимо сделать чтоб если lasttime > на 1 день текущего времени то обновить 1 раз значение поля skill но у меня оно обновляется очень часто примерно каждые 30 сек
Подскажите как переписать код чтоб условие IF срабатывало 1 раз в сутки
Так как функция time() как я понимаю обновляется то и условие из-за этого часто срабатывает и происходит обновление поля skill очень часто. А мне нужно 1 раз в сутки

Добавлено через 14 часов 30 минут
Что так и нету вариантов и предложений ???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.11.2016, 18:24
Ответы с готовыми решениями:

Вопросы по Unix времени
1)Как из Unix времени получить скроку в формате дд.мм.гггг 2)Как узнать текущее время на...

Анимированный отсчет времени unix
Нужно вывести сообщение: &quot;До конца голосования осталось ХХ часов ХХ минут ХХ секунд&quot;. PHP все...

Получение времени в UNIX формате
Как получить реально время в виде UNX (POSIX) в секундах?

Разница во времени в unix формате
Приветствую! Нужно вычислить разницу во времени выбранной временной зоны с utc временем. Делаю...

1
2 / 2 / 2
Регистрация: 30.07.2015
Сообщений: 26
06.11.2016, 22:35 2
Так обновляй время в таблице после того, как условие выполнилось.
0
06.11.2016, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2016, 22:35
Помогаю со студенческими работами здесь

Перевод времени из unix timestamp в формат даты (д/м/г)
Есть некоторое зашифрованное число, к примеру, 1804370930, оно содержит дату(день,месяц, год). Как...

Функция SQL для преобразования Unix времени в обычное
Здравствуйте! Подскажите, пожалуйста, существует ли такая функция в SQL, чтобы её параметрами...

Какой тип использовать для хранения метки времени UNIX в десятичном формате
У меня следующая таблица: -- -- Структура таблицы `chat_msg` -- CREATE TABLE IF NOT...

Администратор инфраструктуры UNIX и SAN ( IK – M - UNIX ), р
Компания: специализируется на предоставлении широкого спектра ИТ-услуг и поставке бизнес-решений. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru