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

Тема: Basa Bd Mysql

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

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

    Basa Bd Mysql

    Помогите уже не 1 раз пишу почему так не сохранияется другое
    вот бд

    вот всё что я добавил
    PHP код:
    enum pInfo
    {
        
    pID,//ID
        
    pPass[34],// Пароль
        
    pEmail[34],
        
    pAdmin,
        
    pSkin,
        
    pSex,
        
    pName[30],
        
    pCash,
        
    pLevel,
        
    pRegiste
    }
    new 
    PlayerInfo[MAX_PLAYERS][pInfo]; 
    PHP код:
    stock SavePlayer(playerid)
    {
        if(
    GetPVarInt(playerid,"Logged") > 0)
        {
            new 
    query_string[(21)+(20+MAX_PLAYER_NAME)+(19+MAX_PLAYER_NAME)+(16+30)] = "UPDATE `Accounts` SET";

            
    format(query_stringsizeof(query_string), "%s `Name` = '%s',"query_stringPlayerInfo[playerid][pName]);
            
    format(query_stringsizeof(query_string), "%s `Password` = '%s'"query_stringPlayerInfo[playerid][pPass]);
            
    format(query_stringsizeof(query_string), "%s `Skin` = '%d'"query_stringPlayerInfo[playerid][pSkin]);
             
    format(query_stringsizeof(query_string), "%s `Sex` = '%d'"query_stringPlayerInfo[playerid][pSex]);
            
    format(query_stringsizeof(query_string), "%s `Cash` = '%d'"query_stringPlayerInfo[playerid][pCash]);
            
    format(query_stringsizeof(query_string), "%s `Level` = '%d'"query_stringPlayerInfo[playerid][pLevel]);
            
    format(query_stringsizeof(query_string), "%s `Reg` = '%d'"query_stringPlayerInfo[playerid][pRegister]);

            
    format(query_stringsizeof(query_string), "%s WHERE `Name` = '%s'"query_stringGN(playerid));
            
    mysql_function_query(mysql_variablequery_stringfalse"""");
        }
        return 
    true;

    PHP код:
    forward LoginCallback(playeridpassword[]);
    public 
    LoginCallback(playeridpassword[])
    {
        new 
    rowsfieldsstring[144], maximum[128] ;
        
    cache_get_data(rowsfields);
        if(!
    rows)
        {
            if(
    GetPVarInt(playerid"wrongPass") == 2)
                return 
    SendClientMessage(playerid,COLOR_RED,"Вы ввели 3 раза неверный пароль, и в целях безопастности вы были кикнуты с сервера!"), Kick(playerid);
            
    SetPVarInt(playerid"wrongPass"GetPVarInt(playerid"wrongPass")+1);
               
    format(stringsizeof(string), "{FFFFFF}Добро пожаловать на сервер {01B866}"NameServer"{FFFFFF}\n\nВаш аккаунт зарегистрирован у нас на сервере.\nВведите пароль в данное окно и нажмите кнопку ввод.\n\nВведите пароль: {FF0000}Неверный пароль осталось [%d/3 попыток]",GetPVarInt(playerid,"wrongPass"));
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"{FFFF00}Авторизация"string"Вход""Отмена");
            return 
    1;
        }
        
    cache_get_field_content(0"ID"maximum), PlayerInfo[playerid][pID] = strval(maximum);
        
    cache_get_field_content(0"Password"maximum), strmid(PlayerInfo[playerid][pPass], maximum0strlen(maximum), 32);
        
    cache_get_field_content(0"Email"maximum), strmid(PlayerInfo[playerid][pEmail], maximum0strlen(maximum), 32);
        
    cache_get_field_content(0"Level"maximum), PlayerInfo[playerid][pLevel] = strval(maximum);
        
    cache_get_field_content(0"Skin"maximum), PlayerInfo[playerid][pSkin] = strval(maximum);
        
    cache_get_field_content(0"Sex"maximum), PlayerInfo[playerid][pSex] = strval(maximum);
        
    cache_get_field_content(0"Cash"maximum), PlayerInfo[playerid][pCash] = strval(maximum);
        
    cache_get_field_content(0"Reg"maximum), PlayerInfo[playerid][pRegister] = strval(maximum);
        if(
    PlayerInfo[playerid][pRegister] == 0)
        {
            
    PlayerInfo[playerid][pRegister] = 1;
            
    PlayerInfo[playerid][pCash] = 970;
        }
        
    SetPVarInt(playerid"Logged"1);
        
    SendClientMessage(playerid, -1"{00FF00}Вы успешно авторизовались!");
        
    SpawnPlayer(playerid);
        
    SavePlayer(playerid);
        return 
    1;

    PHP код:
    stock OnPlayerRegister(playeridpassword[])
    {
        new 
    str[198];
        
    format(strsizeof(str), "INSERT INTO `Accounts` (`Name`, `Password`) VALUES ('%s', '%s')"GN(playerid), password);
        
    mysql_function_query(mysql_variablestrfalse"OnPlayerLogin","d"playerid);
        return 
    true;
    }
    stock OnPlayerLogin(playerid,password[])
    {
        new 
    str[128];
        
    format(strsizeof(str),"SELECT * FROM `Accounts` WHERE `Name` = '%s' AND `Password` = '%s'"GN(playerid), password);
        
    mysql_function_query(mysql_variablestrtrue"LoginCallback","ds"playeridpassword);
        return 
    true;

    Последний раз редактировалось ALIT13; 11.12.2015 в 23:17.

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

    Статус
    Оффлайн
    Регистрация
    24.05.2014
    Сообщений
    346
    Репутация:
    2 ±
    Добавил код

  3. #3
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    PHP код:
    new query_string[(21)+(20+MAX_PLAYER_NAME)+(19+MAX_PLAYER_NAME)+(16+30)] = "UPDATE `Accounts` SET"
    Увеличьте длину ячеек массива. Не забывайте про нуль символ!

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

    Статус
    Оффлайн
    Регистрация
    24.05.2014
    Сообщений
    346
    Репутация:
    2 ±
    я изменил
    PHP код:
    stock SavePlayer(playerid)
    {
        if(
    GetPVarInt(playerid,"Logged") > 0)
        {
            new 
    query[700] = "UPDATE `Accounts` SET ";
            
    //format(query,sizeof(query),"UPDATE `Accounts` SET;
            
            
    format(querysizeof(query), "%s `Name` = '%s',"queryPlayerInfo[playerid][pName]);
            
    format(querysizeof(query), "%s `Password` = '%s'"queryPlayerInfo[playerid][pPass]);
            
    format(querysizeof(query), "%s `Skin` = '%d'"queryPlayerInfo[playerid][pSkin]);
             
    format(querysizeof(query), "%s `Sex` = '%d'"queryPlayerInfo[playerid][pSex]);
            
    format(querysizeof(query), "%s `Cash` = '%d'"queryPlayerInfo[playerid][pCash]);
            
    format(querysizeof(query), "%s `Level` = '%d'"queryPlayerInfo[playerid][pLevel]);
            
    format(querysizeof(query), "%s `Reg` = '%d'"queryPlayerInfo[playerid][pRegister]);

            
    format(querysizeof(query), "%s WHERE `Name` = '%s'"queryGN(playerid));
            
    mysql_function_query(mysql_variablequeryfalse"""");
        }
        return 
    true;

    ПОЛУЧАЕТСЯ ИД ИМЯ ПАРОЛЬ ЗАПИСУЕТСЯ А ОСТАЛЬНОЕ ВСЁ ПУСТОЕ


    LOGI
    PHP код:
    [10:36:12] [WARNINGCMySQLResult::GetRowDataByName field not found ("Email")
    [
    10:36:12] [ERRORCMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`Skin` = '0' `Sex` = '0' `Cash` = '970' `Level` = '0' `Reg` = '1' WHERE `Name` =' at line 1 

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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    PHP код:
    stock SavePlayer(playerid)
    {
    /*
        Зачем сохранять каждый раз Имя, Пароль, Скин, Пол ?
        Если можно во время изменения этих данных сделать собственный UPDATE.
    */
        
    if(GetPVarInt(playerid,"Logged") > 0)
        {
            new
                
    query[500];//Сам счетай
            
    mysql_format(mysql_variablequerysizeof(query), "UPDATE `Accounts` SET `Cash` = '%d', `Level` = '%d', `Reg` = '%d'  WHERE `Name` = '%e'  LIMIT 1",
            
    PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pRegister], GN(playerid));
            
    mysql_tquery(mysql_variablequery"""");
        }
        return 
    true;

    Последний раз редактировалось gangzone.ini; 12.12.2015 в 11:03. Причина: up

  6. Пользователь сказал cпасибо:
    $continue$ (13.12.2015)
  7. #6
    Аватар для ALIT13
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.05.2014
    Сообщений
    346
    Репутация:
    2 ±
    так я и говорю скин и пол не сохраняются в бд

    - - - Добавлено - - -

    не пойму мне надо добавлять вёс с pInfo куда чтоб сохраналось в OnPlayerRegister после майла создоапть ещ штук 30 примеру pADMIN pHouse и так далее или что ?
    PHP код:
    stock OnPlayerRegister(playerid)
    {
        new 
    str[308];
        
    format(strsizeof(str), "INSERT INTO `Accounts` (`Name`, `Password`, `Skin`, `Sex`, `Cash`, `Level`, `Email`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d', '%s')"GN(playerid), PlayerInfo[playerid][pPass], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pSex], PlayerInfo[playerid][pCash], PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pEmail]); //
        //mysql_function_query(mysql_variable, str, false, "OnPlayerLogin","d", playerid);
        
    mysql_function_query(mysql_variablestrfalse"""");
         
    SpawnPlayer(playerid);
        return 
    true;

    а это для чего ?
    PHP код:
    forward LoginCallback(playeridpassword[]);
    public 
    LoginCallback(playeridpassword[])
    {
        new 
    rowsfieldsstring[144], maximum[128] ;
        
    cache_get_data(rowsfields);
        if(!
    rows)
        {
            if(
    GetPVarInt(playerid"wrongPass") == 2)
                return 
    SendClientMessage(playerid,COLOR_RED,"Вы ввели 3 раза неверный пароль, и в целях безопастности вы были кикнуты с сервера!"), Kick(playerid);
            
    SetPVarInt(playerid"wrongPass"GetPVarInt(playerid"wrongPass")+1);
               
    format(stringsizeof(string), "{FFFFFF}Добро пожаловать на сервер {01B866}"NameServer"{FFFFFF}\n\nВаш аккаунт зарегистрирован у нас на сервере.\nВведите пароль в данное окно и нажмите кнопку ввод.\n\nВведите пароль: {FF0000}Неверный пароль осталось [%d/3 попыток]",GetPVarInt(playerid,"wrongPass"));
            
    ShowPlayerDialog(playerid1DIALOG_STYLE_PASSWORD"{FFFF00}Авторизация"string"Вход""Отмена");
            return 
    1;
        }
        
    cache_get_field_content(0"ID"maximum), PlayerInfo[playerid][pID] = strval(maximum);
        
    cache_get_field_content(0"Password"maximum), strmid(PlayerInfo[playerid][pPass], maximum0strlen(maximum), 32);
        
    cache_get_field_content(0"Email"maximum), strmid(PlayerInfo[playerid][pEmail], maximum0strlen(maximum), 32);
        
    cache_get_field_content(0"Level"maximum), PlayerInfo[playerid][pLevel] = strval(maximum);
        
    cache_get_field_content(0"Skin"maximum), PlayerInfo[playerid][pSkin] = strval(maximum);
        
    cache_get_field_content(0"Sex"maximum), PlayerInfo[playerid][pSex] = strval(maximum);
        
    cache_get_field_content(0"Cash"maximum), PlayerInfo[playerid][pCash] = strval(maximum);
        
    //cache_get_field_content(0, "Reg", maximum), PlayerInfo[playerid][pRegister] = strval(maximum);
        //if(PlayerInfo[playerid][pRegister] == 0)
        //{
            //PlayerInfo[playerid][pRegister] = 1;
            //PlayerInfo[playerid][pCash] = 970;
        //}
        
    SetPVarInt(playerid"Logged"1);
        
    SendClientMessage(playerid, -1"{00FF00}Вы успешно авторизовались!");
        
    SpawnPlayer(playerid);
        
    SavePlayer(playerid);
        return 
    1;


 

 

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

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

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

Ваши права

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