В теме 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 пользователей онлайн

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

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

    • youmii
      От youmii
      помогите не работает худ cef_create_browser(playerid, 0x12345, "file:///cef/assets/index.html", false, false); 
      что делать не знаю как его правильно сделать
       
    • fert_bern
      От fert_bern
      Здравствуйте! 
       
      Я ищю человека скриптера который научит работать с Pawno 
       
      Надеюсь люди будут кто есть напишите свой вк пожалуйста.
    • OREGON-RPG
      От OREGON-RPG
      **Привет, будущий друг!**
      Мы создаем новый сервер в >> GTA SA-MP (OregoN Role Playing Game) << и ищем таких же увлеченных игроков, как ты!!!

      Здесь ты сможешь: 

      Влиять на развитие сервера – твое мнение важно! 

      Найти друзей и классную компанию.
       
      Стать частью уютного комьюнити, где все друг за друга.

      Сервер еще в разработке – это шанс войти в историю с самого начала! 

       >>> Давай строить этот мир вместе? <<<

       Переходи по ссылке, будь в центре событий и стань частью истории: 

      [ Группа ВКонтакте: vk.com/oregonrpgru ]

      [ Форум: oregon-rpg.ru ]