SA-MP Forums Archive
MySQL Problem : mysql_fetch_field_row - 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: MySQL Problem : mysql_fetch_field_row (/showthread.php?tid=317437)



MySQL Problem : mysql_fetch_field_row - Shabi RoxX - 11.02.2012

Ok guys I am currently working on a GM(MySQL) and doing mysql_fetch_field_row on player connect but mysql log saying "You cannot call this function now. (Reason: Fields/Rows are empty.)" !!!

I am using MySQL R6...

OnPlayerConnect()
pawn Код:
public OnPlayerConnect(playerid)
{
    new P_Name[24],String[128];
    GetPlayerName(playerid,P_Name,sizeof(P_Name));
    //Mysql
    format(String, sizeof(String), "SELECT IP FROM `p_data` WHERE username = '%s' LIMIT 1", P_Name);
    mysql_query(String);
    /*new query_run = mysql_query(String);
    if(!query_run) return SendClientMessage(playerid,C_WHITE,"Qeury Failed!");
    else
    SendClientMessage(playerid,C_WHITE,"Qeury Run!");*/

    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
        format(String,sizeof(String),"Welcome %s, This account is not registerd use /register to register your account.",P_Name);
        SendClientMessage(playerid,C_YGREEN,String);
        //Account Registration on PlayerConnect
        //ShowPlayerDialog(playerid,D_REGISTER,3,"Account Registration","Your Account is not Registered in oue data. \nPlease Type a Password To Register.","Register","Cancel");
    }
    else if(rows == 1)
    {
        new ip[15];
        mysql_fetch_field_row(ip,"IP");
        format(String,sizeof(String),"Welcome back %s ....\nPlease Type password to login.\nIP: %s",P_Name,ip);
        ShowPlayerDialog(playerid,D_LOGIN,3,"Account Login",String,"Login","Cancel");
    }
    mysql_free_result();
    return 1;
}
MySQL logs
Код:
[17:48:24] >> mysql_connect( )

[17:48:24] CMySQLHandler::Connect() - Connection was successful.

[17:48:24] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.

[17:48:24]  

[17:48:24] ---------------------------

[17:48:24] MySQL Debugging activated (02/11/12)

[17:48:24] ---------------------------

[17:48:24]  

[17:48:24] >> mysql_query( Connection handle: 1 )

[17:48:24] CMySQLHandler::Query(SELECT IP FROM `p_data` WHERE username = 'Sexton_Sanders' LIMIT 1) - Successfully executed.

[17:48:24] >> mysql_store_result( Connection handle: 1 )

[17:48:24] CMySQLHandler::StoreResult() - Result was stored.

[17:48:24] >> mysql_num_rows( Connection handle: 1 )

[17:48:24] CMySQLHandler::NumRows() - Returned 1 row(s)

[17:48:24] >> mysql_fetch_field_row( Connection handle: 1 )

[17:48:24] CMySQLHandler::FetchField(IP) - You cannot call this function now. (Reason: Fields/Rows are empty.)

[17:48:24] >> mysql_free_result( Connection handle: 1 )

[17:48:24] CMySQLHandler::FreeResult() - Result was successfully free'd.

[17:48:40] >> mysql_real_escape_string( Connection handle: 1 )

[17:48:40] CMySQLHandler::EscapeString(shahab); - Escaped 6 characters to shahab.

[17:48:40] >> mysql_query( Connection handle: 1 )

[17:48:40] CMySQLHandler::Query(SELECT IP FROM `p_data` WHERE `username` = 'Sexton_Sanders' AND password = 'shahab' LIMIT 1) - Successfully executed.

[17:48:40] >> mysql_store_result( Connection handle: 1 )

[17:48:40] CMySQLHandler::StoreResult() - Result was stored.

[17:48:40] >> mysql_fetch_field_row( Connection handle: 1 )

[17:48:40] CMySQLHandler::FetchField(IP) - You cannot call this function now. (Reason: Fields/Rows are empty.)

[17:48:40] >> mysql_query( Connection handle: 1 )

[17:48:40] CMySQLHandler::Query(SELECT IP FROM `p_data` WHERE `username` = 'Sexton_Sanders' AND password = 'shahab' LIMIT 1) - Successfully executed.

[17:48:40] >> mysql_num_rows( Connection handle: 1 )

[17:48:40] CMySQLHandler::NumRows() - Returned 1 row(s)

[17:48:40] >> mysql_free_result( Connection handle: 1 )

[17:48:40] CMySQLHandler::FreeResult() - Result was successfully free'd.
Database Pic:



Re: MySQL Problem : mysql_fetch_field_row - Tanush123 - 11.02.2012

do it like this
pawn Код:
public OnPlayerConnect(playerid)
{
    new P_Name[MAX_PLAYER_NAME],String[128];
    GetPlayerName(playerid,P_Name,sizeof(P_Name));
    //Mysql
    format(String, sizeof(String), "SELECT IP FROM `p_data` WHERE username = '%s' LIMIT 1", P_Name);
    mysql_query(String);
    /*new query_run = mysql_query(String);
    if(!query_run) return SendClientMessage(playerid,C_WHITE,"Qeury Failed!");
    else
    SendClientMessage(playerid,C_WHITE,"Qeury Run!");*/

    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
        format(String,sizeof(String),"Welcome %s, This account is not registerd use /register to register your account.",P_Name);
        SendClientMessage(playerid,C_YGREEN,String);
        //Account Registration on PlayerConnect
        //ShowPlayerDialog(playerid,D_REGISTER,3,"Account Registration","Your Account is not Registered in oue data. \nPlease Type a Password To Register.","Register","Cancel");
    }
    else
    {
        new ip[15];
        mysql_fetch_field_row(ip,"IP");
        format(String,sizeof(String),"Welcome back %s ....\nPlease Type password to login.\nIP: %s",P_Name,ip);
        ShowPlayerDialog(playerid,D_LOGIN,3,"Account Login",String,"Login","Cancel");
    }
    mysql_free_result();
    return 1;
}