SQLite help
#1

pawn Код:
stock SaveUser(id, save_type)
{
    if(Tmp_P[id][Registered] != true) return 0;
    new query[500],  DBResult:res;
    switch(save_type)
    {
        case SAVE_TYPE_MINING:
        {
            format(query, 500,
            "SELECT * FROM `MINING` WHERE `USERNAME` = '%s' ", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                format(query, 500,
                "UPDATE MINING SET ORE='%d', COPPER='%d', TIN='%d', ORE_CONTAINER='%d', COPPER_CONTAINER='%d', TIN_CONTAINER='%d', \
                TOOL='%d', MININGXP='%d' WHERE `USERNAME` = '%s' "
,
                M[id][Metals][METAL_ORE], M[id][Metals][METAL_COPPER], M[id][Metals][METAL_TIN], M[id][Metal_Containers][METAL_ORE],
                M[id][Metal_Containers][METAL_COPPER], M[id][Metal_Containers][METAL_TIN], M[id][Tool], M[id][Mining_XP], DB_Escape(pname(id)) );
                db_query(Server, query);
            }
            else return db_free_result(res);
        }
        case SAVE_TYPE_TIMING:
        {
            format(query, 500,
            "SELECT * FROM `TIME_STATS` WHERE `USERNAME` = '%s' ", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                db_free_result(res);
                format(query, 500,
                "UPDATE TIME_STATS SET TIMES_WEEDED='%d',TIMES_MINED='%d',TIMES_FISHED='%d',TIMES_PUNISHED='%d',HOURS_PLAYED='%d',MINUTES_PLAYED='%d',SECONDS_PLAYED='%d',TIMES_PLAYED='%d' WHERE `USERNAME`='%s'",
                Time_P[id][Times_Weeded], Time_P[id][Times_Mined], Time_P[id][Times_Fished],
                Time_P[id][Times_Punished], Time_P[id][Hours_played], Time_P[id][Minutes_played], Time_P[id][Seconds_played], Time_P[id][Times_played], pname(id) );
                db_query(Server, query);
            }
            else return db_free_result(res);
        }
       
        case SAVE_TYPE_MAIN:
        {
            format(query, 500,
            "SELECT * FROM `MAIN_PSTATS` WHERE `USERNAME` = '%s' ", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                db_free_result(res);
                format(query, 500,
                "UPDATE MAIN_STATS SET KILLS='%d',DEATHS='%d',XP='%d',MONEY='%d',BALANCE='%d' WHERE `USERNAME`='%s' ",
                P[id][Kills], P[id][Deaths], P[id][XP], P[id][Money], P[id][Balance],
                id );
                res = db_query(Server, query);
                if(!res) printf("query failed");
            }
        }
        case SAVE_TYPE_SERVERSTATS:
        {
            format(query, 500,
            "SELECT * FROM `SERVER_STATS` WHERE `USERNAME`='%s'", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                db_free_result(res);
                format(query, 500,
                "UPDATE SERVER_STATS SET PASSWORD='%s',IP='%s',ADMINLEVEL='%d',VIPLEVEL='%d',DONATED='%f',REG_YEAR='%d',REG_MONTH='%d',REG_DAY='%d' WHERE `USERNAME`='%s'",
                DB_Escape(Server_P[id][Password]), DB_Escape(Server_P[id][IP]), Server_P[id][AdminLevel], Server_P[id][VIPLevel], Server_P[id][Donated],
                Server_P[id][Reg_year], Server_P[id][Reg_month], Server_P[id][Reg_date], pname(id) );
                db_query(Server, query);
            }
        }
        case SAVE_TYPE_OWNERSHIP:
        {
            format(query, 500,
            "SELECT * FROM `MAIN_STATS` WHERE `USERNAME`='%s'", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                db_free_result(res);
                format(query, 500,
                "UPDATE OWNERSHIP_STATS SET CAR1='%d',CAR2='%d',HOUSE='%d' WHERE `USERNAME`='%s'",
                Owner_P[id][Car][0], Owner_P[id][Car][1], Owner_P[id][House], DB_Escape( pname(id) )
                );
                db_query(Server, query);
            }
        }
        case SAVE_TYPE_INVENTORY:
        {
            format(query, 500,
            "SELECT * FROM `MAIN_STATS` WHERE `USERNAME`='%s'", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                db_free_result(res);
                format(query, 500,
                "UPDATE INVENTORY_STATS SET WEED='%d',SEEDS='%d',FISHBAIT='%d',TUNA='%d',SNAPPER='%d',NEEDLEFISH='%d',FERTILIZIERS='%d' WHERE `USERNAME`='%s'",
                Invent_P[id][Weed], Invent_P[id][Seeds], Invent_P[id][Fishbait], Invent_P[id][Fishes][FISH_TUNA],
                Invent_P[id][Fishes][FISH_SNAPPER], Invent_P[id][Fishes][FISH_NEEDLEFISH], Invent_P[id][Fertilizers] );
                db_query(Server, query);
            }
        }
        case SAVE_TYPE_NOTIFICATIONS:
        {
            format(query, 500,
            "SELECT * FROM `MAIN_STATS` WHERE `USERNAME`='%s'", pname(id) );
            res = db_query(Server, query);
            if(db_num_rows(res))
            {
                db_free_result(res);
                format(query, 500,
                "UPDATE NOTIFY_STATS SET JOINLEAVE='%d',SPREES='%d',CAPTURES='%d',ADMINS='%d',PRVTNEWS='%d' WHERE `USERNAME`='%s'",
                Notify_P[id][Join_Leave_News], Notify_P[id][Spree_News],
                Notify_P[id][Captures_News], Notify_P[id][Admin_News],
                Notify_P[id][Prvt_News], pname(id)
                );
                db_query(Server, query);
            }
        }
    }
    return 1;
}
No query's work at all, I've tried to debug each of them and I still get 'query failed'
Anybody got an idea why this ain't working?
Reply
#2

1. Could you please post the printed values for the query variable for some of them.
2. May sound like a stupid question, but have you used db_open?
3. Is it actually reaching the queries? Use print around the queries and see if that area of code is being printed .
4. Try taking out the ' and ' around the numerical values. This may be causing issues if the fields are integers in the database.
Reply
#3

Quote:
Originally Posted by [HiC]TheKiller
Посмотреть сообщение
1. Could you please post the printed values for the query variable for some of them.
2. May sound like a stupid question, but have you used db_open?
3. Is it actually reaching the queries? Use print around the queries and see if that area of code is being printed .
4. Try taking out the ' and ' around the numerical values. This may be causing issues if the fields are integers in the database.
Query's printed

Quote:

[16:05:05] UPDATE MINING SET ORE='0', COPPER='0', TIN='0', ORE_CONTAINER='0', COPPER_CONTAINER='0', TIN_CONTAINER='0', TOOL='0', MININGXP='0' WHERE `USERNAME` = '[COD5]Gangs'
[16:05:05] UPDATE TIME_STATS SET TIMES_WEEDED='0',TIMES_MINED='0',TIMES_FISHED='0', TIMES_PUNISHED='0',HOURS_PLAYED='0',MINUTES_PLAYED ='0',SECONDS_PLAYED='0',TIMES_PLAYED='0' WHERE `USERNAME`='[COD5]Gangs'




[16:05:05] UPDATE MAIN_PSTATS SET KILLS='0',DEATHS='0',XP='0',MONEY='55000',BALANCE= '0' WHERE `USERNAME`='[COD5]Gangs'



[16:05:05]

UPDATE SERVER_STATS SET PASSWORD='nAn',IP='nill',ADMINLEVEL='0',VIPLEVEL=' 0',DONATED='0.000000',REG_YEAR='2013',REG_MONTH='5 ',REG_DAY='12' WHERE `USERNAME`='[COD5]Gangs'


[16:05:05] UPDATE OWNERSHIP_STATS SET CAR1='9999',CAR2='9999',HOUSE='9999' WHERE `USERNAME`='[COD5]Gangs'


[16:05:05] UPDATE INVENTORY_STATS SET WEED='0',SEEDS='0',FISHBAIT='0',TUNA='0',SNAPPER=' 0',NEEDLEFISH='0',FERTILIZIERS='0' WHERE `USERNAME`='[COD5]Gangs'


[16:05:06] UPDATE NOTIFY_STATS SET JOINLEAVE='1',SPREES='0',CAPTURES='0',ADMINS='0' WHERE `USERNAME`='[COD5]Gangs'
The MAIN_PSTATS one is still not saving.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)