Страница 1 из 11
Модератор форума: valych 
Форум | www.SAMP-TEAM.com » Wiki SA-MP » Информация для новичков » MySQL (Для тех кто освоил MxINI или Dini)
MySQL
MySQL ( разговорн. "Мускул" ) - сис-ма управления базами данных.
Имеет 3 так сказать действия
- Чтение
- Запись
- Обновление ( По другому "Перезапись" )

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

- Работает быстрей файлов
- Возможность записи и чтения например одновременно
- Ну и по общему обозрению это лучше чем работа с файлами
* Многие пользователи поддерживают и соглашаются что MySQL лучше записи в файлы

Минусы
Их как бы нету в том случае если у Вас мощный хостинг

Для работы с базами требуется обязательно:
Сервер ( в основе это так называемый Apache )
Сам сервер SAMP
И плагин для работы с БД

Для всей этой работы следует создать базу,пользователя и таблицу для записи данных

Функции чтения,записи и обновления используются в запросах к БД .
В павно запросы происходят через функцию mysql_query(query[]);
Вот пример запроса к базе данных
Код

public OnPlayerConnect(playerid)
          {
                  GetPlayerName(playerid,PlayerInfo[playerid][pName],24);
              format(qwery,sizeof(qwery),"SELECT * FROM `users` WHERE `name` = '%s' LIMIT 1",PlayerInfo[playerid][pName]);
                  mysql_query(qwery);
                  mysql_store_result();
                  /*===============================...Авторизация на сервере...=====================*/
                  if(mysql_fetch_row_format(qwery))
                  {
                          ShowPlayerDialog(playerid,1,1,"Авторизация на SAMP SERVER","Здравствуйте,добро пожаловать на наш сервер\nЧто-бы начать играть необходимо авторизоваться.\nПожалуйста введите пароль ниже...","Далее","");
                  }
                  /*===============================...Регистрация на сервере...=====================*/
                  else
                  {
                          ShowPlayerDialog(playerid,2,1,"Регистрация на SAMP SERVER","Здравствуйте,добро пожаловать на наш сервер\nЧто-бы начать играть необходимо зарегистрироваться.\nПожалуйста введите пароль ниже...","Далее","");
                  }
                  return 1;
          }

Данные мы получили,проверили есть ли таблица с аккаунтами,если нет просим зарегистрироваться игрока.
Дальше
Обновление игрока
Код

public OnPlayerDisconnect(playerid, reason)
{
BaseSetInt("users","level",PlayerInfo[playerid][pLevel],"Name"
,PlayerInfo[playerid][pName]);
/*
format(query,128,"UPDATE `users` SET `level` = '%d' WHERE `Name` = '%s'",PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pName]
);
mysql_query(query);
*/
//Дальнейшие действия   
return 1;
}

Если Вы закончили использовать запрос то отключайте его вот таких образом
Код

mysql_free_result();

Для удобной работы можно установить Denwer ( спец.программа ) для работы такого рода.
Подключение в моде
В начало мода
Код

#include <a_samp>
#include <a_mysql>
#include <sscanf2>
#define SQL_HOST "localhost"   
#define SQL_USER "sent"
#define SQL_PASS "sent"
#define SQL_DB "sent"
new qwery[512];


SQL_HOST "localhost" Хост базы,обычно это IP -адрес базы данных
SQL_USER "sent" Имя пользователя БД
SQL_PASS "sent" Пароль от БД
SQL_DB "sent" Имя базы
Код

public OnGameModeInit()
{
mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
if(mysql_ping() == 1)
          {
          mysql_debug(1);
          printf("База данных подключена", SQL_DB);
          }
else printf("Не удалось подкл. к базе", SQL_DB);


Код

public OnGameModeExit()
{
          mysql_close();
          return 1;
}


Тема создана по просьбе пользователей.
Объяснять я конечно не умею,но пытался smile
В скором времени выложу еще около 3-5 тем по MySQL

Специально для SAMP-TEAM.COM
04.09.2014 в 19:51
Если что-то не так - пишите, утверждать что я профессионал в этом не собираюсь
04.09.2014 в 20:07
Форум | www.SAMP-TEAM.com » Wiki SA-MP » Информация для новичков » MySQL (Для тех кто освоил MxINI или Dini)
Страница 1 из 11
Поиск: