Доступ к архиву

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

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

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

Вопрос по MySQL

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

MakkO

Умник
Добрый Вечер...
Решил попробовать сделать регистрацию по уроку Snoowker"а<<Кликабельно.
У меня возник вопрос. Как добавлять новые переменные для сохранения и загрузки? Например денег и очков.(aMoney , aScore)

Загрузка:
PHP:
LoadAccount(playerid, password[]) {
    new
        query[128],
         sqlpass[32],
         result[5+24+64],
         dialog[128];
    mysql_real_escape_string(password, sqlpass); // Защита от SQL Inject, шифрует кодировку.
     format(query, sizeof(query), "SELECT * FROM `Accounts` WHERE `Password` = '%s' AND `ID` = '%i'", sqlpass, playerVariable[playerid][aID]);
    // SELECT * - выбрать, FROM - с таблицы, WHERE - где, пароль равен введенному паролю и ID равен иду ника человека.
     mysql_query(query); // Отправляем запрос.
     mysql_store_result(); // Смотрим записи, которые мы выбрали запросом выше.
     if(mysql_num_rows() == 1) { // Если выбрало только 1 аккаунт с таким паролем и ИД - успех, пароль введен верно, загружаем данные в массив.
        mysql_fetch_row_format(result, "|"); // split, данные в результате записываются типо "1|Snoowker|parol"
        sscanf(result, "p<|>is[24]s[32]", // i - ид (int), s[размер] - string, ник и пароль.
            playerVariable[playerid][aID],
            playerVariable[playerid][aName],
            playerVariable[playerid][aPassword]);
        playerVariable[playerid][aLogged] = true;
        mysql_free_result(); // Очищаем память.
        return 1;
    }
     else { // Мы ввели неверный пароль.
         if(playerVariable[playerid][aWrongPassword] == 4) {
            SendClientMessage(playerid, COLOR_LIGHTRED, "Вы 3 раза ввели неверный пароль и были отключены от сервера.");
            Kick(playerid);
            return 1;
        }
                playerVariable[playerid][aWrongPassword] ++;
        format(dialog, sizeof(dialog),
            "Вы ввели неверный пароль.\n\
            У Вас осталось %i/3 попыток ввода.", 3 - playerVariable[playerid][aWrongPassword]);
        ShowPlayerDialog(playerid, DIALOG_WRONGPAS, DIALOG_STYLE_MSGBOX, "Ошибка.", dialog, "Повтор", "Отмена");
     }
     return 1;
}

Сохранение:
PHP:
SaveAccount(playerid) { // Сохранение аккаунта.
    if(playerVariable[playerid][aLogged] == true) { // Проверка, если аккаунт авторизован.
        CheckMySQLConnection(); // Проверяем, подключена ли БД.
        new 
            query[186],
            sqlname[MAX_PLAYER_NAME],
            sqlpass[64];
        mysql_real_escape_string(playerVariable[playerid][aName], sqlname);
        mysql_real_escape_string(playerVariable[playerid][aPassword], sqlpass);
        format(query, sizeof(query), "UPDATE `Accounts` SET `Nickname` = '%s', `Password` = '%s' WHERE `ID` = '%i'", sqlname, sqlpass, playerVariable[playerid][aID]);
        mysql_query(query); // Отправляем запрос
    }
    return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу