Русское сообщество по скриптингу

Помощь по MySql

Флуд, который не касается других разделов форума.

Модератор: Модераторы

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Помощь по MySql

Сообщение Dmitry Beast » 22 окт 2017, 17:44

Добрый вечер ув. форумчане!
Есть два столбца в бд,
один метка - player_metka ставится на 1 во время использования функции на сервере
второй дата использования - player_date = NOW()
подскажите как в начале карты пробежаться по всей бд и поставить всем метку на 0 у кого прошло 12 или больше часов со времени использования функции?
Предположительно я вижу это так:

Код: Выделить всё
SQL_Check_GetHs()
{
    static 
query[128],data[1];
    
formatex(querysizeof(query) - 1,"UPDATE player_metka = 0 from ABS WHERE player_data < NOW()-INTERVAL 12 HOURS");
        
    
SQL_ThreadQuery(g_Sqlx,"SaveDataPlayer",querydata1)
Аватара пользователя
Dmitry Beast
 
Сообщения: 1560
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Египет
Благодарил (а): 440 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

Re: Помощь по MySql

Сообщение RevCrew » 22 окт 2017, 18:23

Код: Выделить всё


UPDATE 
`tableset player_metka 0 WHERE NOW() -`player_data`  >  60*60*12


что то типа такого
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Помощь по MySql

Сообщение Dmitry Beast » 22 окт 2017, 18:33

щас вот подсказали, проверять надо..
Но за помощь спасибо! :thumbs_up

Код: Выделить всё
UPDATE table SET player_metka='0' WHERE player_exp NOW()-INTERVAL 12 HOURS
Аватара пользователя
Dmitry Beast
 
Сообщения: 1560
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Египет
Благодарил (а): 440 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

Re: Помощь по MySql

Сообщение Dmitry Beast » 22 окт 2017, 23:12

Этот вариант
Код: Выделить всё
UPDATE table SET player_metka='0' WHERE player_exp < NOW()-INTERVAL 12 HOURS

выдаёт ошибку
Код: Выделить всё
L 10/22/2017 - 23:53:31: [ABS] [SQLX] Failed
L 10
/22/2017 - 23:53:31: [ABS] [SQLX] Error 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'HOURS' at line 1' with '(я'
L 10/22/2017 - 23:53:31: [ABS] [SQLX] UPDATE HSStats SET pl_get_hs = '0' WHERE player_data < NOW()-INTERVAL 12 HOURS


Добавлено спустя 20 секунд:
RevCrew писал(а):
Код: Выделить всё


UPDATE 
`table` set player_metka = 0 WHERE NOW() -`player_data`  >  60*60*12


что то типа такого

твой вариант всё время ставит на 0
Аватара пользователя
Dmitry Beast
 
Сообщения: 1560
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Египет
Благодарил (а): 440 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

Re: Помощь по MySql

Сообщение артист666 » 23 окт 2017, 00:11

Код: Выделить всё
UPDATE `table` SET player_metka = 0 WHERE `player_exp` < (NOW() - INTERVAL 12 HOUR


Попробуй так.
Последний раз редактировалось артист666 23 окт 2017, 00:17, всего редактировалось 1 раз.
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Помощь по MySql

Сообщение RevCrew » 23 окт 2017, 00:15

Dmitry Beast, UPDATE `table` set player_metka = 0 WHERE NOW() -`player_data` > 3600*60*12

Добавлено спустя 42 секунды:
так все будет норм
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Помощь по MySql

Сообщение Fedcomp » 23 окт 2017, 00:23

Dmitry Beast писал(а):твой вариант всё время ставит на 0

Потому что он в sql не шарит, чего ты его всегда слушаешь? :crazy:
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Помощь по MySql

Сообщение Dmitry Beast » 23 окт 2017, 02:30

HOURS >>>> HOUR :-)

Добавлено спустя 51 секунду:
>>>
UPDATE table SET player_metka='0' WHERE player_exp < NOW()-INTERVAL 12 HOUR

Добавлено спустя 23 секунды:
Всем спасибо за помощь! :-) :thumbs_up
Аватара пользователя
Dmitry Beast
 
Сообщения: 1560
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Египет
Благодарил (а): 440 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

Re: Помощь по MySql

Сообщение Fedcomp » 23 окт 2017, 12:36

Сплошной гавнокод )
Зачем ставить player_metka если можно всегда считать timestamp?
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


Вернуться в Болтовня

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5