Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 22
  1. #1
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    247
    Репутация:
    2 ±

    Дата вступления MySQL.

    Здравствуйте. Подскажите пожалуйста, как в БД обозначить дату вступления и дату повышения игрока.
    При назначении лидерки и вступления игрока я добавил:
    PHP код:
    PlayerInfo[params[0]][pDataInvite] = gettime(); 
    А какой тип указать в БД? Полазил по интернету, прочитал что DATETIME выводит дату и время, как раз то, что мне нужно. Попробовал, но когда я назначил лидерку, ничего не произошло, в БД запись не обновилась, а осталась 0000-00-00 00:00:00
    Если выбираю INT - то выводит просто целое огромное число.
    Подскажите как быть и как это вывести потом в игре, через format например.

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,441
    Репутация:
    261 ±
    gettime() возвращает UNIX Time
    Пример с WIKI:
    PHP код:
    new HourMinuteSecondTimestamp;
    Timestamp gettime(HourMinuteSecond);
    printf("%02d:%02d:%02d"HourMinuteSecond);
    printf("Seconds since midnight 1st January 1970: %d"Timestamp); 


    Советую использовать функцию NOW() и тогда тип столбца - DATETIME.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  3. #3
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    247
    Репутация:
    2 ±
    Т.е. если я использую NOW() он запишет один раз, без изменений, т.е если игрока приняли, записалась дата и все, а если потом повысили, то она уже не перезапишется?
    И как тогда вывести мой PlayerInfo[params[0]][pDataInvite] через NOW? Подскажи пожалуйста.

  4. #4
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,441
    Репутация:
    261 ±
    Не совсем понял, но почему дата принятия перезаписывается в зависимости от повышения игрока?
    Цитата Сообщение от Skyline Посмотреть сообщение
    Т.е. если я использую NOW() он запишет один раз, без изменений, т.е если игрока приняли, записалась дата и все, а если потом повысили, то она уже не перезапишется?
    Зачем это нужно? И как оно используется?
    Цитата Сообщение от Skyline Посмотреть сообщение
    И как тогда вывести мой PlayerInfo[params[0]][pDataInvite] через NOW? Подскажи пожалуйста.
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  5. #5
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    375
    Репутация:
    144 ±
    Значение из поля datetime, если не ошибаюсь, выводится как строка. Пр. Повышении игрока просто в то же поле еще раз запиши данные по такому же принципу, время обновится

  6. #6
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    247
    Репутация:
    2 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Не совсем понял, но почему дата принятия перезаписывается в зависимости от повышения игрока?

    Зачем это нужно? И как оно используется?

    Дата принятия записывается единожды, но когда игрока кикнут, она должна обнулиться.
    Потом при принятии в другую например фракцию, снова записывается.
    А вот при повышении игрока уже она меняется, т.е. дата принятия не изменяется, а при повышении, перезаписывается.

    А DataInvite хочу чтобы хранило в себе эту дату принятия, чтобы можно например было вывести в статистике игрока.
    Или же можно как то сделать иначе?

  7. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Ну так какие проблемы? При вступлении во фракцию отправляй запрос с использованием NOW() на нужный столбец. Когда нужно выгрузить, выгружай как строку (соответственно, в массив). Когда нужно обнулить - обнуляй. Когда нужно обновить - обновляй. Всё работает точно так же, как и с другими столбцами. Для дат нет каких-то особенных условий, кроме определённого типа столбца в БД (о чём уже сказали) и, собственно, всё.
    С повышением всё точно так же.

    Или ты хочешь, чтоб мы тебе тут готовые запросы написали и рассказали куда их вставлять?
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #8
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Если я не ошибаюсь, функция NOW () в плагине от Blue-G всегда возвращает нулевые значения

  9. #9
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,037
    Репутация:
    705 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Если я не ошибаюсь, функция NOW () в плагине от Blue-G всегда возвращает нулевые значения
    NOW() - это не функция плагина, это функция сервера. Если возвращается нулевое значение, то ваш MySQL сервер настроен неправильно. Гораздо надёжнее будет воспользоваться функцией SA-MP - gettime() и передать полученное значение в MySQL.

  10. #10
    Аватар для Skyline
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2014
    Адрес
    Россия
    Сообщений
    247
    Репутация:
    2 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    NOW() - это не функция плагина, это функция сервера. Если возвращается нулевое значение, то ваш MySQL сервер настроен неправильно. Гораздо надёжнее будет воспользоваться функцией SA-MP - gettime() и передать полученное значение в MySQL.
    Тогда тип DataInvite в БД будет INT? Просто он записывает не дату, а целое число.

 

 
Страница 1 из 3 123 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •