Raised This Month: $ Target: $400
 0% 

Add mysql save to plugin, Compile errors


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
PimP517
Member
Join Date: Oct 2009
Old 01-11-2011 , 09:00   Add mysql save to plugin, Compile errors
Reply With Quote #1

[IMG]http://img46.**************/img46/6941/zmiana.png[/IMG]

Line 2987:
Code:
    format(szTemp,charsmax(szTemp),"UPDATE `cod_stats` SET   `doswiadczenie` = '%i', `poziom` = '%i', `inteligencja` = '%i',   `zdrowie` = '%i', `wytrzymalosc` = '%i', `kondycja` = '%i',   `wytrzymaloscitemu` = '%i' WHERE `cod_stats`.`nazwa` = '%s', `klasa` =   '%s';", doswiadczenie_gracza[id],  poziom_gracza[id],  inteligencja_gracza[id], zdrowie_gracza[id],  wytrzymalosc_gracza[id],  kondycja_gracza[id],  wytrzymaloscitemu_gracza[id]), nazwa_gracza[id],  klasa_gracza[id]);
PimP517 is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 01-11-2011 , 09:37   Re: Add mysql save to plugin, Compile errors
Reply With Quote #2

try this:
Code:
     format(szTemp,charsmax(szTemp),"UPDATE `cod_stats` SET   `doswiadczenie` = '%i', `poziom` = '%i', `inteligencja` = '%i',   `zdrowie` = '%i', `wytrzymalosc` = '%i', `kondycja` = '%i',   `wytrzymaloscitemu` = '%i' WHERE `cod_stats`.`nazwa` = '%s', `klasa` =   '%s';", doswiadczenie_gracza[id],  poziom_gracza[id],  inteligencja_gracza[id], zdrowie_gracza[id],  wytrzymalosc_gracza[id],  kondycja_gracza[id],  wytrzymaloscitemu_gracza[id], nazwa_gracza[id],  klasa_gracza[id]);
__________________
Impossible is Nothing
Sylwester is offline
PimP517
Member
Join Date: Oct 2009
Old 01-11-2011 , 13:08   Re: Add mysql save to plugin, Compile errors
Reply With Quote #3

Works.
But is not saving.
Can u check

Table is created
Code:
public MySql_Init()
{
    g_SqlTuple = SQL_MakeDbTuple(Host,User,Pass,Db)
    new ErrorCode,Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
    if(SqlConnection == Empty_Handle)
        set_fail_state(g_Error)
    new Handle:Queries
    Queries = SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS cod_stats (nazwa varchar(255),klasa varchar(255),doswiadczenie varchar(255),poziom varchar(255),inteligencja varchar(255),zdrowie varchar(255),wytrzymalosc varchar(255),kondycja varchar(255),wytrzymaloscitemu varchar(255),sid varchar(255))")

    if(!SQL_Execute(Queries))
    {
        SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        set_fail_state(g_Error)

    }
    SQL_FreeHandle(Queries)
    SQL_FreeHandle(SqlConnection)
}
Save

Code:
public ZapiszDane(id)
{
  new szTemp[512];

  format(szTemp,charsmax(szTemp),"UPDATE `cod_stats` SET   `doswiadczenie` = '%i', `poziom` = '%i', `inteligencja` = '%i',   `zdrowie` = '%i', `wytrzymalosc` = '%i', `kondycja` = '%i',   `wytrzymaloscitemu` = '%i' WHERE `cod_stats`.`nazwa` = '%s', `klasa` =   '%s';", doswiadczenie_gracza[id],  poziom_gracza[id],  inteligencja_gracza[id], zdrowie_gracza[id],  wytrzymalosc_gracza[id],  kondycja_gracza[id],  wytrzymaloscitemu_gracza[id], nazwa_gracza[id],  klasa_gracza[id]);
  SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);

}
Load
Code:
public WczytajDane(id, klasa)
{
    new szSteamId[32], szTemp[512]
    get_user_authid(id, szSteamId, charsmax(szSteamId))
    
    new Data[1]
    Data[0] = id

    new doswiadczeniegracza[32], poziomgracza[32], inteligencjagracza[32], silagracza[32], zrecznoscgracza[32], zwinnoscgracza[32], wytrzitemu[32];

    format(szTemp,charsmax(szTemp),"SELECT * FROM `cod_stats` WHERE (`cod_stats`.`nazwa` = '%s', `klasa` = '%s')", nazwa_gracza[id],  klasa_gracza[id]);
    SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)

    doswiadczenie_gracza[id] = str_to_num(doswiadczeniegracza);
    poziom_gracza[id] = str_to_num(poziomgracza)>0?str_to_num(poziomgracza):1;
    inteligencja_gracza[id] = str_to_num(inteligencjagracza);
    zdrowie_gracza[id] = str_to_num(silagracza);
    wytrzymalosc_gracza[id] = str_to_num(zrecznoscgracza);
    kondycja_gracza[id] = str_to_num(zwinnoscgracza);
    wytrzymaloscitemu_gracza[id] = str_to_num(wytrzitemu);
    punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-wytrzymaloscitemu_gracza[id];

} 


public register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(FailState == TQUERY_CONNECT_FAILED)
    {
        log_amx("Load - Could not connect to SQL database.  [%d] %s", Errcode, Error)
    }
    else if(FailState == TQUERY_QUERY_FAILED)
    {
        log_amx("Load Query failed. [%d] %s", Errcode, Error)
    }

    new id
    id = Data[0]
    
    if(SQL_NumResults(Query) < 1) 
    {

        new szTemp[512]
        
        // now we will insturt the values into our table.
        format(szTemp,charsmax(szTemp),"INSERT IF NOT EXISTS INTO `cod_stats` (`nazwa`, klasa`, `doswiadczenie`, `poziom`, `inteligencja`, `zdrowie`, `wytrzymalosc`, `kondycja`, `wytrzymaloscitemu`)VALUES ('%s','%s','0','0','0','0','0','0','0');",nazwa_gracza[id], klasa_gracza[id])
        SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp)

    } 
    else 
    {
    doswiadczenie_gracza[id]=SQL_ReadResult(Query, 1)
    poziom_gracza[id]=SQL_ReadResult(Query, 1)
    inteligencja_gracza[id]=SQL_ReadResult(Query, 1)
    zdrowie_gracza[id]=SQL_ReadResult(Query, 1)
    wytrzymalosc_gracza[id]=SQL_ReadResult(Query, 1)
    kondycja_gracza[id]=SQL_ReadResult(Query, 1)
    wytrzymaloscitemu_gracza[id]=SQL_ReadResult(Query, 1)
    }
    
    return PLUGIN_HANDLED 
}  

public IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    SQL_FreeHandle(Query)
    
    return PLUGIN_HANDLED
} 


public plugin_end()
{
    SQL_FreeHandle(g_SqlTuple)
}
PimP517 is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 01-11-2011 , 14:06   Re: Add mysql save to plugin, Compile errors
Reply With Quote #4

What a mess...

Create table:
PHP Code:
public MySql_Init()
{
    
g_SqlTuple SQL_MakeDbTuple(Host,User,Pass,Db)
    new 
ErrorCode,Handle:SqlConnection SQL_Connect(g_SqlTuple,ErrorCode,g_Error,charsmax(g_Error))
    if(
SqlConnection == Empty_Handle)
        
set_fail_state(g_Error)
    new 
Handle:Queries
    Queries 
SQL_PrepareQuery(SqlConnection,"CREATE TABLE IF NOT EXISTS cod_stats (nazwa varchar(64),klasa varchar(64),doswiadczenie INT(11),poziom INT(11),inteligencja INT(11),zdrowie INT(11),wytrzymalosc INT(11),kondycja INT(11),wytrzymaloscitemu INT(11), PRIMARY KEY (nazwa, klasa));")

    if(!
SQL_Execute(Queries))
    {
        
SQL_QueryError(Queries,g_Error,charsmax(g_Error))
        
set_fail_state(g_Error)
    }
    
SQL_FreeHandle(Queries)
    
SQL_FreeHandle(SqlConnection)

Save:
PHP Code:
public ZapiszDane(id)
{
    new 
szTemp[512];
    
format(szTemp,charsmax(szTemp),"REPLACE INTO cod_stats (nazwa, klasa, doswiadczenie, poziom, inteligencja, zdrowie, wytrzymalosc, kondycja, wytrzymaloscitemu) VALUES ('%s','%s','%d','%d','%d','%d','%d','%d','%d');"nazwa_gracza[id], klasa_gracza[id], doswiadczenie_gracza[id],  poziom_gracza[id],  inteligencja_gracza[id], zdrowie_gracza[id],  wytrzymalosc_gracza[id],  kondycja_gracza[id], wytrzymaloscitemu_gracza[id])
    
SQL_ThreadQuery(g_SqlTuple,"IgnoreHandle",szTemp);

Load:
PHP Code:

public WczytajDane(idklasa)
{
    new 
szTemp[512], Data[1]
    
Data[0] = id

    format
(szTemp,charsmax(szTemp),"SELECT * FROM cod_stats WHERE (nazwa = '%s' AND klasa = '%s');"nazwa_gracza[id], klasa_gracza[id])
    
SQL_ThreadQuery(g_SqlTuple,"register_client",szTemp,Data,1)
}


public 
register_client(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(
FailState)
    {
        
log_amx("SQL Error: %s (%d)"ErrorErrcode)
        return 
PLUGIN_HANDLED
    
}

    new 
id Data[0]
    if(!
SQL_NumResults(Query))
    {
        
doswiadczenie_gracza[id] = 0
        poziom_gracza
[id] = 1
        inteligencja_gracza
[id] = 0
        zdrowie_gracza
[id] = 0
        wytrzymalosc_gracza
[id] = 0
        kondycja_gracza
[id] = 0
        wytrzymaloscitemu_gracza
[id] = 0
        punkty_gracza
[id] = 0
        
return PLUGIN_HANDLED
    
}

    
doswiadczenie_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"doswiadczenie"))
    
poziom_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"poziom"))
    
inteligencja_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"inteligencja"))
    
zdrowie_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"zdrowie"))
    
wytrzymalosc_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"wytrzymalosc"))
    
kondycja_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"kondycja"))
    
wytrzymaloscitemu_gracza[id] = SQL_ReadResult(QuerySQL_FieldNameToNum(Query,"wytrzymaloscitemu"))
    
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-wytrzymaloscitemu_gracza[id]
    return 
PLUGIN_HANDLED



public 
IgnoreHandle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize)
{
    if(
FailState)
    {
        
log_amx("SQL Error: %s (%d)"ErrorErrcode)
        return 
PLUGIN_HANDLED
    
}
    return 
PLUGIN_HANDLED



public 
plugin_end()
{
    
SQL_FreeHandle(g_SqlTuple)

Make sure that player name (nazwa_gracza[]) is a backquoted player name, otherwise any player will be able to destroy your database.
__________________
Impossible is Nothing
Sylwester is offline
PimP517
Member
Join Date: Oct 2009
Old 01-11-2011 , 21:33   Re: Add mysql save to plugin, Compile errors
Reply With Quote #5

It should be

Code:
REPLACE INTO cod_stats 
or
Code:
UPDATE cod_stats 
[IMG]http://img143.**************/img143/7964/coss.png[/IMG]
Because all is saving for one map.
Or maybe it should be

Code:
format(szTemp,charsmax(szTemp),"REPLACE INTO cod_stats (doswiadczenie, poziom, inteligencja, zdrowie, wytrzymalosc, kondycja, wytrzymaloscitemu) VALUES ('%s','%s','%d','%d','%d','%d','%d','%d','%d') WHERE (nazwa='%s', klasa='%s');",doswiadczenie_gracza[id],  poziom_gracza[id],  inteligencja_gracza[id], zdrowie_gracza[id],  wytrzymalosc_gracza[id],  kondycja_gracza[id], wytrzymaloscitemu_gracza[id], nazwa_gracza[id], klasa_gracza[id],)
Thx.
If u need something ask on steam, pimp517pl.

Last edited by PimP517; 01-12-2011 at 14:12.
PimP517 is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 01-13-2011 , 00:26   Re: Add mysql save to plugin, Compile errors
Reply With Quote #6

If it saves your stats and you can see them in mysql database, but then it resets them when you connect again, then it means that there is a problem with loading, not saving. It's not hard to fix such problem.
I'm not sure if it's the cause but try to change:
PHP Code:
    if(!SQL_NumResults(Query)) 
to
PHP Code:
    if(!SQL_MoreResults(Query)) 
__________________
Impossible is Nothing
Sylwester is offline
PimP517
Member
Join Date: Oct 2009
Old 01-13-2011 , 11:37   Re: Add mysql save to plugin, Compile errors
Reply With Quote #7

And why is saving row "klasa" with somthign like that .
PimP517 is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 01-13-2011 , 13:00   Re: Add mysql save to plugin, Compile errors
Reply With Quote #8

How should I know? You can't tell what is causing that problem with only those fragments of code.
__________________
Impossible is Nothing
Sylwester is offline
PimP517
Member
Join Date: Oct 2009
Old 01-14-2011 , 12:17   Re: Add mysql save to plugin, Compile errors
Reply With Quote #9

Can u check please. In row 'klasa' is repleacing every map this  with  after with  after ....
Attached Files
File Type: sma Get Plugin or Get Source (CodMod_mysql.sma - 583 views - 168.3 KB)
PimP517 is offline
Sylwester
Veteran Member
Join Date: Oct 2006
Location: Poland
Old 01-14-2011 , 16:14   Re: Add mysql save to plugin, Compile errors
Reply With Quote #10

I think I fixed it (not tested). You need to drop cod_stats table and let the plugin create it again.
Attached Files
File Type: sma Get Plugin or Get Source (CodMod_mysql.sma - 587 views - 168.3 KB)
__________________
Impossible is Nothing
Sylwester is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 01:57.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode