SA-MP Forums Archive
Top queries (SQL) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Top queries (SQL) (/showthread.php?tid=477122)



Top queries (SQL) - [SF]OutLawZ - 22.11.2013

Hi,

I'm not sure why string2 isn't printing in the client message as it should be the value of 'kills'.

It's pretty messy code at the moment so don't criticize me on that, I'm just trying to get the first part to work, tia


Code:
COMMAND:top(playerid,params[])
{
    new
    	string[64], string2[64], query[128],
    	DBResult:result;
    	DBResult:result2;

    format(query,sizeof(query),"SELECT `Name` FROM `USERS` ORDER BY (`KILLS` * 1) DESC limit 3");
    result = db_query(Database,query);

    for(new a;a<db_num_rows(result);a++)
    {
        db_get_field(result,0,string,128);
        format(query,sizeof(query),"SELECT `KILLS` FROM `USERS` WHERE `Name` = lower('%s')",string);
        result2 = db_query(Database,query);
        db_get_field(result2,0,string2,128);

        format(string,sizeof(string),"%d. %s Amount (%d)",a+1,string, string2); 
        SendClientMessage(playerid,-1,string);

        db_next_row(result);
        db_free_result(result2);
    }
    db_free_result(result);
    return 1;
}
Looks like this, but the Kill value isn't printing
"1. Hitler Amount (16)"
"2. Frank Amount (12)"
"3. outlawz Amount (5)"


Re: Top queries (SQL) - Jefff - 22.11.2013

because its string not integer? %d to %s


Re: Top queries (SQL) - Konstantinos - 22.11.2013

That should work:
pawn Code:
COMMAND:top( playerid, params[ ] )
{
    new
        string[ 44 ],
        info[ 2 ][ MAX_PLAYER_NAME ],
        DBResult: result
    ;

    result = db_query( Database, "SELECT Name, KILLS FROM USERS ORDER BY KILLS DESC LIMIT 3" );

    for( new a; a != db_num_rows( result ); a++ )
    {
        db_get_field( result, 0, info[ 0 ], MAX_PLAYER_NAME );
        db_get_field( result, 1, info[ 1 ], 7 );

        format( string, sizeof( string ), "%d. %s Amount (%d)", a + 1, info[ 0 ], strval( info[ 1 ] ) );
        SendClientMessage( playerid, -1, string );

        db_next_row( result );
    }
    db_free_result( result );
    return 1;
}



Re: Top queries (SQL) - [SF]OutLawZ - 22.11.2013

Great, but for some reason it's still not getting accurate results. Let me do some testing,

Edit, missed out something;
Code:
result = db_query( Database, "SELECT Name, KILLS FROM USERS ORDER BY KILLS * 1 DESC LIMIT 3" );
Thanks for your help