Szóval a probléma: Van egy MySQL kód rész, ami nem igazán úgy működik, ahogy kellene. Tehát be kérem a nevet egy INPUT-ba, és elindítok egy lekérdezést, viszont nem tölti be a változókba az értékeket. (Igen, a MySQL működik, és fel van töltve adatokkal.) Illetve ez a módnak csak egy része, próbáltam csak a szükséges elemeket leírni.
(Egy INSERT INTO vagy UPDATE hiba nélkül működik.)
#include <easydialog>
forward OnPlayerLoadAccount(playerid);
enum UserInfo
{
uAccID,
uUsername[32],
uPassword[129]
}
new uInfo[MAX_PLAYERS][userInfo];
new query[2048];
/*..mysql = mysql_connect(...);..*/
/*..Dialog_Show(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a felhasználó neved:\", \"OK\", \"Vissza\");..*/
Dialog:DIALOG_LOGIN(playerid, response, listitem, inputtext[])
{
if(response)
{
LoadAccount(playerid, inputtext);
Dialog_Show(playerid, DIALOG_LOGIN_PASSWORD, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Írd be a jelszavad:\", \"OK\", \"Vissza\");
}
return 1;
}
stock LoadAccount(playerid, name[])
{
mysql_format(mysql, query, sizeof(query), \"SELECT * FROM accounts WHERE Username = \'%s\'\", name);
mysql_tquery(mysql, query, \"OnPlayerLoadAccount\", \"i\", playerid);
}
public OnPlayerLoadAccount(playerid)
{
uInfo[playerid][uAccID] = cache_get_field_content_int(0, \"AccID\");
cache_get_field_content(0, \"Username\", uInfo[playerid][uUsername]);
cache_get_field_content(0, \"Password\", uInfo[playerid][uPassword]);
}
cache_get_field_content(0, \"Username\", uInfo[playerid][uUsername]);
cache_get_field_content(0, \"Password\", uInfo[playerid][uPassword]);
Van még két paramétere: connectionHandle és maxlength
Tehát a helyes használatuk:
cache_get_field_content(0, \"Username\", uInfo[playerid][uUsername], mysql, 32);
cache_get_field_content(0, \"Password\", uInfo[playerid][uPassword], mysql, 129);