В теме 3 сообщения

Skiffi
Активный

Здравствуйте пользователи сайта Pawno-Rus.ru


Сегодня мы поговорим о том как же уменьшить количество полей в базе данных.
Последнее время открыв базу сервера, зачастую можно увидеть такую картину:

(Пример)
EV9Xmi7.png

Как по мне, выглядит не очень.
Ну так вот, а можно иметь те же самые значения, но записанные куда компактнее.
Выглядит это так:
Qj8fCTI.png

Согласитесь, компактнее, да и выглядит уже лучше.
Ну, приступим к записи.

(Пример)
Создаем новое поле в базе данных, параметры указываем следующие:
QgSDv3i.png

Поле создано, далее запись переменных в моде и выгружение в них значений из базы:
В массиве PlayerData (Пример) создаете переменные:
enum PlayerData {
    pID, // ID игрока, не входит в урок
    pCheckKey, // Пароль игрока, не входит в урок
    phNumbers[8], // Необходимые нам переменные
}
new
    PlayerInfo[MAX_PLAYERS][PlayerData];

 

Переменные созданы, приступим к выгружению значений:


(Пример, с использованием sscanf)
    mysql_fetch_row_format(query, "|");
    sscanf(query, "p<|>is[33]a<i>[8]",
    PlayerInfo[playerid][pID],
    PlayerInfo[playerid][pCheckKey],
    PlayerInfo[playerid][phNumbers]);
    mysql_free_result();

 

Использование соответственно:

CMD:test(playerid, params[]) {
    new
        string[144];
    PlayerInfo[playerid][phNumbers][0] = random(899999)+100000;
    format(string,sizeof(string),"Теперь ячейка равна - %d",PlayerInfo[playerid][phNumbers][0]);
    return SendClientMessage(playerid,C_GRAY,string); // C_GRAY - цвет
}

 

Сохранение значений в базу:


(Пример с использованием format)

 

    new
        string[32],
        query[128];

    format(string,sizeof(string),"%d|%d|%d|%d|%d|%d|%d|%d",
    PlayerInfo[playerid][phNumbers][0],
    PlayerInfo[playerid][phNumbers][1],
    PlayerInfo[playerid][phNumbers][2],
    PlayerInfo[playerid][phNumbers][3],
    PlayerInfo[playerid][phNumbers][4],
    PlayerInfo[playerid][phNumbers][5],
    PlayerInfo[playerid][phNumbers][6],
    PlayerInfo[playerid][phNumbers][7]);
    format(query,sizeof(query),"UPDATE `users` SET `phNumbers` = '%s' WHERE BINARY Name = '%s'",string,PlayerInfo[playerid][Name]);
    mysql_query(query);

 

Автор: *Skiffi


[Примечание] Тема ни откуда не сворована, написана лично мною. Если такие темы уже есть, отпишите мне в лс на форум
[Примечание2] Если урок оказался полезен, поблагодарите автора, этого достаточно

Отредактировано пользователем Skiffi
Причина: Правки

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Бот
Великий Гуру

АВТОМАТИЧЕСКИ СФОРМИРОВАННОЕ СООБЩЕНИЕ:

Данная тема была перемещена модерацией или администрацией портала PAWNO-RUS.RU! 

Перемещена из: "Скриптинг PAWN > Готовые решения"

Перемещена в: "Скриптинг PAWN > Уроки"

 

С уважением, ваш Бот! 

Если вы НЕ согласны с переносом данной темы в раздел "Скриптинг PAWN > Уроки", пожалуйтесь на это сообщение в жалобе указав причины вашего недовольства. Спасибо. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Korochansky
      От Korochansky
      Настало время объявить о скором выпуске первого релиза среды разработки под названием Spawn.

      В настоящее время программа находится на заключительных этапах доработки кода и локализации интерфейса.
      Таким образом, в течение следующей недели будет выпущена быстрая и современная среда разработки, обладающая следующими возможностями (о которых я расскажу сейчас, а о других — позже):
       
      Полнофункциональный локальный Git: 
      Индексирование, фиксации, индикаторы состояния и мягкий/жесткий сброс до любой точки сохранения одним щелчком мыши. Разрабатывайте свой игровой сервер, не боясь его сломать.
      Новички могут рассматривать это как историю кодовой базы вашего сервера (что и есть на самом деле).
       
      Чистый UTF-8 (без BOM): 
      Полный отказ от устаревшей кодировки Windows-1251 (CP1251) для абсолютной стабильности и идеальной совместимости с Git.
      Реализация поддержки CP1251 привела бы к нестабильному поведению программы и ухудшила бы пользовательский опыт.
       
      История изменений строк: Редактор выделяет измененные строки в реальном времени в полях рядом с номерами строк. Это позволяет мгновенно видеть границы изменений, внесенных с момента открытия файла.
       
      Сопоставление и выделение фигурных скобок: мгновенное выделение открывающих и закрывающих фигурных скобок для быстрой навигации по структуре кода и защиты от ошибок компиляции.
       
      Интеграция с SAMPCTL: готовая к использованию автоматизация процессов. Сборка, запуск сервера и менеджер зависимостей (управление библиотеками и плагинами) работают напрямую из интерфейса редактора.
       
      И многое другое...
       
      И самое главное: проект будет с открытым исходным кодом под лицензией GPLv3!
      Следите за новостями о выпуске в репозитории: https://github.com/daniilkorochansky/spawn
    • KodBi
      От KodBi
      шапка
      по одиночке работают
      нужны оба
    • Vova_Zenko
      От Vova_Zenko
      Приветствую всех. Подскажите пожалуйста, как реализовать систему как на Грине или мотион(не реклама). 
       
      Готов оплатить, если найдется человек, который поможет реализовать.