Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Основные запросы mysql

Статус
В этой теме нельзя размещать новые ответы.

DeadScripter

Умник
Всем добры день и сегодня я вам покажу пожалуй основные запросы в mysql и объясню, что они делают.

1 на нашем подиуме покажется функция обновления статистики для игрока:

PHP:
string[75];
format(string,sizeof(string),"UPDATE test Testing = '1' WHERE name = '%s'", PlayerInfo[playerid][pName]); // Форматируем образ запроса в БД (Мы обновили столбик Testing для имени игрока на 1)
mysql_query(dbHandle,string)// dbHandle - подключение к БД, string - отправка запроса в БД
P.S не у всех в моде есть dbHandle
Поэтому давайте создадим.
ко всем переменным
PHP:
new dbHandle;
В OnGameModeInit
PHP:
dbHandle = mysql_connect(ХОСТ, ЮЗЕР, БД, ПАРОЛЬ)
mysql_query(dbHandle,"SET NAMES cp1251") // Это мы присваиваем кодировку.
Можно и по другому, но для меня легче таким образом.

2 на нашем подиуме - функция создания таблицы:

Например мы создадим таблицу, где будет хранится только ник персонажа.
!ВНИМАНИЕ, если таблица создана, то она будет обновлена на те параметры, которые вы введете.
PHP:
string[65];
format(string, sizeof(string), "INSERT INTO test (name) VALUES ('%e')",PlayerInfo[playerid][pName]);
mysql_query(dbHandle, string);
Также не у всех есть PlayerInfo[playerid][pName].
Создадим. Заходим в ваш enum pInfo
и создаем
PHP:
pName[24],
Далее в OnPlayerConnect:
PHP:
GetPlayerName(playerid,PlayerInfo[playerid][pName],24); // Где 24 - это количество символов. В сампе есть ограничение. Помоему 20 или 24. Поэтому смысла выше ставить я не вижу
3 будет следующее по счету - функция проверяет значение в БД

Давайте проверим, есть ли данный ник в тестовой БД
PHP:
new string[65];
format(string, sizeof(string), "SELECT * FROM test WHERE name = '%s'", PlayerInfo[playerid][pName]); // Формируем запрос
mysql_query(dbHandle,string); // Отправляем запрос
if(cache_num_rows() != 0) return SendClientMessage(playerid,COLOR_GRAD1, "Ник обнаружен в БД");//Получаем ответ
if(cache_num_rows() == 0) return SendClientMessage(playerid,COLOR_GRAD1, "К сожалению, мы не обнаружили данный ник");
4 мы расмотрим 3 функции, которые будут читать нашу статистику из БД

Для начала делаем запрос на проверку.
А затем уже и загружаем
PHP:
new string[100], rows, fields;
format(string, sizeof(string), "SELECT * FROM `accounts` WHERE `name` = '%e' LIMIT 1", PlayerInfo[playerid][pName])
cache_get_data(rows,fields,dbHandle)//Проверяем, загружаем, подключаемся (Впрочем ничего нового :-) )
if(rows)
{
cache_get_field_content_float(0,"Coord") // Пошли загружать данные. Это мы загружаем данные с плавающем значением float.
cache_get_field_content_int(0,"Testing") // Это мы загружаем коэффициентные данные.
cache_get_field_content(0,"TestString",PlayerInfo[playerid][pTestString], 32) // Это мы загружаем текстовые данные, или иными словами - загружаем string (текст).
Ну вот и все. Не судите строго. Не давно начал учить работу с MySQL. Это основные запросы, которыми пользуются скриптеры. Ну вроде я описал, что какая делает.
Всем спасибо, кому помог поставьте +
Если будут ошибки, приношу свои извинения, но вроде писал правильно. Буду рад, если покажете ошибки.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу