mysql_fetch_field_row = 0 for all - 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_fetch_field_row = 0 for all (
/showthread.php?tid=619702)
mysql_fetch_field_row = 0 for all -
Rubey - 21.10.2016
hello, i have a problem in my gamemode.
when i take the function "mysql_fetch_field_row" for "PlayerInfo", the result is "0" for all.... i don't know why.
the script:
PHP код:
format(string, sizeof(string), "SELECT * FROM `users` WHERE username = '%s'", gUsername[playerid]);
mysql_query(string);
mysql_store_result();
if(mysql_num_rows() > 0)
{
mysql_fetch_field_row(field, "id"); User[playerid][pSQL] = strval(field);
}
mysql_free_result();
so User[playerid][pSQL] = strval(field); = 0 but it is not normal
mysql log:
PHP код:
[11:31:28] CMySQLHandler::Query(SELECT * FROM `users` WHERE username = 'Angela') - Successfully executed.
[11:31:28] >> mysql_store_result( Connection handle: 1 )
[11:31:28] CMySQLHandler::StoreResult() - Result was stored.
[11:31:28] >> mysql_num_rows( Connection handle: 1 )
[11:31:28] CMySQLHandler::NumRows() - Returned 1 row(s)
[11:31:28] >> mysql_fetch_field_row( Connection handle: 1 )
[11:31:28] CMySQLHandler::FetchField("id") -
[11:31:28] >> mysql_query( Connection handle: 1 )
sorry for my bad english, thanks
Re: mysql_fetch_field_row = 0 for all -
Konstantinos - 21.10.2016
You select all the data for that player to retrieve just their ID? You can select only that specified column:
pawn Код:
"SELECT id FROM users WHERE username = '%s'"
and then use:
pawn Код:
User[playerid][pSQL] = mysql_fetch_int();
to retrieve it.
Two suggestions as well, escape strings and update mysql plugin as there is rarely support for such an old version.
Re: mysql_fetch_field_row = 0 for all -
Rubey - 21.10.2016
User ID is just an example.
Other example:
PHP код:
if(mysql_num_rows() > 0)
{
mysql_fetch_field_row(field, "id"); User[playerid][pSQL] = strval(field);
format(string, sizeof(string), "SELECT * FROM `bans` WHERE `userid` = '%d'", User[playerid][pSQL]);
mysql_query(string);
mysql_store_result();
if(mysql_num_rows() > 0)
{
new adminname[MAX_PLAYER_NAME], datefin, time, reason[60];
mysql_fetch_field_row(field, "adminname"); strmid(adminname, field, 0, strlen(field), MAX_PLAYER_NAME);
mysql_fetch_field_row(field, "raison"); strmid(reason, field, 0, strlen(field), sizeof(reason));
mysql_fetch_field_row(field, "datefin"); datefin = strval(field);
[...]
(ps: the variable "new field[50] is highest)
And for the R33 version, i don't like this version because it's not compatible with Debian Linux and he use too much memory usage compared to the R5/R6 version.
Re: mysql_fetch_field_row = 0 for all -
Rubey - 23.10.2016
up ...