Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4

Тема: MySQL R39-2

  1. #1
    Аватар для bla
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.03.2015
    Сообщений
    15
    Репутация:
    2 ±

    MySQL R39-2

    Суть проблемы, в основу мода взял регистрацию от Deimos'a, разбирал её, делал по примеру.
    Игрок заходит на сервер .... регистрирует аккаунт .... ему выводят сообщение "Мы рады вам ....", а после этого я хочу показать ему номер его аккаунта, то бишь ID в таблице accounts. У меня выбивает 0, но после перезахода: О чудо! Номер аккаунта верный(Проверяю через команду). Я так понял, что не обновлялись данные в используемой переменной и решил написать свой паблик, дабы обновлять все переменные при регистрации разом. Ниже весь код, у меня ничерта не получилось, эффект тот же. Не могли бы вы мне помочь, а точнее объяснить, что я делаю не так.



     Создание аккаунта
    PHP код:
    stock CreateNewAccount(playeridpassword[])
    {
        new 
    query_string[70+MAX_PLAYER_NAME+30];
        
    UpdateAccountInfoRightNow(playerid);
        
    format(query_stringsizeof(query_string), "INSERT INTO `accounts` (`player_name`, `password`) VALUES ('%s', '%s')"pInfo[playerid][pName], password);
        
    mysql_function_query(mysql_connect_IDquery_stringfalse"""");
        
    format(query_stringsizeof(query_string), "№ %d | Аккаунт %s успешно зарегистрирован. Администрация желает Вам приятной игры!"pInfo[playerid][pID], pInfo[playerid][pName]);
        
    SendClientMessage(playerid0xFFFFFF00query_string);
        
    pInfo[playerid][pID] = cache_get_field_content_int(0"ID"mysql_connect_ID);
        new 
    str[128];
        
    format(strsizeof(str), "№ акк: %d"pInfo[playerid][pID]);
        
    SendClientMessage(playerid, -1str);
        
    SpawnPlayer(playerid);
        return 
    true;



     Самописная функция, которой я хочу обновлять аккаунты при их создании
    PHP код:
    forward UpdateAccountInfoRightNow(playerid);
    public 
    UpdateAccountInfoRightNow(playerid) {
        
    pInfo[playerid][pID] = cache_get_field_content_int(0"ID"mysql_connect_ID);
        
    pInfo[playerid][pAdminLevel] = cache_get_field_content_int(0"AdminLevel"mysql_connect_ID);
        
    pInfo[playerid][pKill] = cache_get_field_content_int(0"Kill"mysql_connect_ID);
        
    pInfo[playerid][pDeath] = cache_get_field_content_int(0"Death"mysql_connect_ID);
        
    pInfo[playerid][pDMScore] = cache_get_field_content_int(0"DMScore"mysql_connect_ID);
        new 
    str[128];
        for(new 
    0MAX_PLAYERSi++) {
            if(
    pInfo[playerid][pAdminLevel] > && pInfo[playerid][pNotification] == true) {
                
    format(strsizeof(str), "[CODE 001] Информация игрока %s | ID: %d | #%d | ADlv: %d : Обновлена."pInfo[playerid][pName], playeridpInfo[playerid][pID], pInfo[playerid][pAdminLevel]);
                
    SCM(playerid, -1str);
            }
        }
        return 
    true;



     Паблик Deimosa
    PHP код:
    forward UploadPlayerAccount(playerid);
    public 
    UploadPlayerAccount(playerid
    {
        
    pInfo[playerid][pID] = cache_get_field_content_int(0"ID"mysql_connect_ID);
        
    pInfo[playerid][pAdminLevel] = cache_get_field_content_int(0"AdminLevel"mysql_connect_ID);
        
    pInfo[playerid][pKill] = cache_get_field_content_int(0"Kill"mysql_connect_ID);
        
    pInfo[playerid][pDeath] = cache_get_field_content_int(0"Death"mysql_connect_ID);
        
    pInfo[playerid][pDMScore] = cache_get_field_content_int(0"DMScore"mysql_connect_ID);
        
    SendClientMessage(playerid0xFFFFFF00"Вы успешно авторизировались!");
        
    SpawnPlayer(playerid);
        return 
    true;



  2. #2
    Аватар для Nazarik
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.09.2013
    Адрес
    Ukraine | Lvov
    Сообщений
    20
    Репутация:
    11 ±
    PHP код:
    stock CreateNewAccount(playeridpassword[])
    {
        new 
    query[70+MAX_PLAYER_NAME+30];
      
        
    mysql_format(querysizeof(query), "INSERT INTO `accounts` (`player_name`, `password`) VALUES ('%e', '%e')"pInfo[playerid][pName], password);
        
    mysql_tquery(mysql_connect_IDquery"OnAccountRegistered""i"playerid);
        return 
    true;
    }  

    forward OnAccountRegistered(playerid);
    public 
    OnAccountRegistered(playerid)
    {
        
    pInfo[playerid][pID] = cache_insert_id();
        
        new 
    fmt_msg[128];
        
        
    format(fmt_msgsizeof(fmt_msg), "№ акк: %d | Аккаунт %s успешно зарегистрирован. Администрация желает Вам приятной игры!"pInfo[playerid][pID], pInfo[playerid][pName]);
        
    SendClientMessage(playerid0xFFFFFF00fmt_msg);
        
        
    SpawnPlayer(playerid);
        return 
    1;

    Последний раз редактировалось Nazarik; 25.03.2015 в 22:01.

  3. Пользователь сказал cпасибо:
    bla (25.03.2015)
  4. #3
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Nazarik Посмотреть сообщение
    PHP код:
    stock CreateNewAccount(playeridpassword[])
    {
        new 
    query[70+MAX_PLAYER_NAME+30];
      
        
    mysql_format(querysizeof(query), "INSERT INTO `accounts` (`player_name`, `password`) VALUES ('%e', '%e')"pInfo[playerid][pName], password);
        
    mysql_tquery(mysql_connect_IDquery"OnAccountRegistered""i"playerid);
        return 
    true;
    }  

    forward OnAccountRegistered(playerid);
    public 
    OnAccountRegistered(playerid)
    {
        
    pInfo[playerid][pID] = cache_insert_id();
        
        new 
    fmt_msg[128];
        
        
    format(fmt_msgsizeof(fmt_msg), "№ акк: %d | Аккаунт %s успешно зарегистрирован. Администрация желает Вам приятной игры!"pInfo[playerid][pID], pInfo[playerid][pName]);
        
    SendClientMessage(playerid0xFFFFFF00fmt_msg);
        
        
    SpawnPlayer(playerid);
        return 
    1;

    Если не секрет зачем при INSERT'e в колэбек кидать ?

  5. #4
    Аватар для Mazzilla
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.11.2013
    Адрес
    Нижневартовск
    Сообщений
    256
    Репутация:
    63 ±
    Если для столбца ID (название может быть другое) установлено значение AUTO_INCREMENT на положительное, то каллбэк вернёт значение данного столбца в переменную pInfo[playerid][pID]

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •