Skiffi

Сокращние полей в базе данных

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

Здравствуйте пользователи сайта 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 пользователей онлайн

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

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

    • Доналдо Фарекелка
      От Доналдо Фарекелка


      Скачать файл Arizona RolePlay || Ser
      Приветствую, этот мод я нашёл на просторах интернета. 
      Скачал мод у автора:  Developer Stravinskiy
      Доработал мод: Donaldo_Farekelka
       
      Предупреждаю! Мод сырой, багов стало меньше, но они есть.
      Мод: Баня, Подвал, В некоторых местах маппинг, система коронавируса, 8 лвл админок
       
      Информация:
      1) Dc_Cmd
      2) Mysql, mode, language - Всё настраивается теперь в pawno ( UPDATE: 1.1.0 )
      3) Административные права в данный момент можно выдать только через MYSQL ( BD ).
       
      То что я сделал ( Всё что я делаю сейчас, смотрите в изменениях ):
       
      Добавил Доналдо Фарекелка Добавлено 13.04.2023 Категория Моды Автор shenol (vk.com/donaldo_farekelka)  
    • gooding
      От gooding
      Доброго времени суток! Я выложил на продажу игровой мод RedRow RolePlay!
       
      17 ТИТУЛОВ, 14 КОСТЮМОВ (КАМЕРМЭН, ФЕЯ, СИ-ДЖЕЙ, ДЭДПУЛ, СПАНЧ БОБ, НИНДЗЯ, ДЕД МОРОЗ и другие!),
      BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS, Rolls-Royce Phantom! Система рулетки  (Исправлена, теперь не выпадает одно и то же),
      Автопарки Фракций (FBI и банд), МОД ОПТИМИЗИРОВАЛИ под ИГРУ, ДОБАВИЛИ НОВЫЙ АНТИЧИТ (Latest Nex-AC) и АНТИЧИТ настроен. Проделано много работы (Над модом работали полгода) и исправили множество багов.
       
      Что было добавлено?
      1. 17 титулов,
      2. 14 костюмов,
      3. Эксклюзивный транспорт (SandKing, Rolls-Royce Phantom, BMW I8, BMW M5, BMW Vision M NEXT, Mercedes-Benz G-CLASS).
      4. Автопарк ФБР и всех банд.
      5. Новый анти-чит.
      6. Оптимизация игрового мода.
      7. Премиум и уникальные возможности для владельцев Премиума.
      8. Команда /bonus, где можно получить бесплатно Red Coins.
      9. За АКТИВ даются Red Coins!
      10. Рестарт сервера в 5:00 по МСК.
      11. Радужный клист.
      12. Уникальный тюнинг для эксклюзивных машин и ускорение.
      13. Новая система банка.
      14. Исправлено множество багов.
      15. Новый маппинг.
    • Redmondd
      От Redmondd
      Хочу сделать команду /gpsoff, которая убирает метку
    • Доналдо Фарекелка
      От Доналдо Фарекелка
      Приветствую, этот мод я нашёл на просторах интернета. 
      Скачал мод у автора:  Developer Stravinskiy
      Доработал мод: Donaldo_Farekelka
       
      Предупреждаю! Мод сырой, багов стало меньше, но они есть.
      Мод: Баня, Подвал, В некоторых местах маппинг, система коронавируса, 8 лвл админок
       
      Информация:
      1) Dc_Cmd
      2) Mysql, mode, language - Всё настраивается теперь в pawno ( UPDATE: 1.1.0 )
      3) Административные права в данный момент можно выдать только через MYSQL ( BD ).
       
      То что я сделал ( Всё что я делаю сейчас, смотрите в изменениях ):