hello guys, i'm trying to load some data from two tables, but only load 1 table... this is my code
Код:
/////on query
forward OnQueryFinish(resultid, extraid, ConnectionHandle);
public OnQueryFinish(resultid, extraid, ConnectionHandle)
{
new Rows, Field, string[256];
if(resultid != 0)
{
cache_get_data(Rows, Field);
}
switch(resultid)
{
case 1:
{
if(Rows == 1)
{
new content[20],Query[256];
//////////////////Accounts
//format(Query, sizeof(Query), "SELECT `password` = MD5(`%s`) FROM `accounts` WHERE name='%s'", gacinfo[extraid][gpassword],pName);
cache_get_field_content(0, "id_account", content); gacinfo[extraid][id] = strval(content);
///PlayerInfo[extraid][id] = gacinfo[extraid][id];
cache_get_field_content(0, "password", gacinfo[extraid][gpassword]);
cache_get_field_content(0, "email", gacinfo[extraid][email]);
cache_get_field_content(0, "taxi", content); Checktaxi[extraid] = strval(content);
cache_get_field_content(0, "health", content); PlayerInfo[extraid][health] = floatstr(content);
L
/////////////////Users
//format(Query, sizeof(Query), "SELECT `score` = '%d', `skin` = '%d' FROM `users` WHERE account_id='%d'", PlayerInfo[extraid][score],PlayerInfo[extraid][skin],gacinfo[extraid][id]);
//mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 0, extraid);
//format(Query, sizeof(Query), "SELECT `health` = '%f', `armour` = '%f', `posx` = '%f', `posy` = '%f', `posz` = '%f', `rot` = '%f' FROM `users` WHERE account_id='%d'", PlayerInfo[extraid][health],PlayerInfo[extraid][armour],PlayerInfo[extraid][posx],PlayerInfo[extraid][posy],PlayerInfo[extraid][posz],PlayerInfo[extraid][rot],gacinfo[extraid][id]);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 0, extraid);
///////////////Jobs
cache_get_field_content(0, "id_jobs", content); PlayerInfo[extraid][id] = strval(content);
///////////////Cars
cache_get_field_content(0, "id_cars", content); PlayerInfo[extraid][id] = strval(content);
new gstring[128];
format(gstring, sizeof(gstring), "{D0FF00}[TNW] {FFFFFF}Tu vida es %f y tu pass es %d", extraid, PlayerInfo[extraid][health], gacinfo[extraid][id]);
SendClientMessage(extraid, -1, gstring);
SetSpawnInfo(extraid,0,PlayerInfo[extraid][skin], PlayerInfo[extraid][posx],PlayerInfo[extraid][posy],PlayerInfo[extraid][posz],PlayerInfo[extraid][rot],27,90000,0,0,0,0);
SetPlayerScore(extraid, PlayerInfo[extraid][score]);
SetPlayerArmour(extraid, PlayerInfo[extraid][armour]);
SetPlayerHealth(extraid, 100);
SpawnPlayer(extraid);
}
else if(!Rows)
{
Kick(extraid);
}
}
case 2:
{
if(Rows == 1)
{
new pName[24]; GetPlayerName(extraid, pName, 24);
cache_get_field_content(0, "email", gacinfo[extraid][email]);
format(string, sizeof(string), "[TNW] Esta cuenta esta registrada:", pName);
ShowPlayerDialog(extraid, LOGIN, DIALOG_STYLE_INPUT,"Ingresa tu mail:",string,"Siguiente","Salir");
}
else if(!Rows)
{
new pName[24]; GetPlayerName(extraid, pName, 24);
format(string, sizeof(string), "[TNW] Esta cuenta no esta registrada.", pName);
ShowPlayerDialog(extraid, REGISTRO2, DIALOG_STYLE_INPUT,"Ingresa tu mail:",string,"Siguiente","Salir");
}
}
}
return 1;
}
///DIALOG RESPONSE
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new string[256];
new pName[24], Query[256]; GetPlayerName(playerid, pName, 24);
switch(dialogid)
{
case LOGIN:
{
if(!response)
{
Kick(playerid);
}
if(IsNull(inputtext))
{
SendClientMessage(playerid, -1, "[TNW] Escribe tъ email");
format(string, sizeof(string), "[TNW] Error completa el espacio.");
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "email:",string,"Siguiente", "salir");
}
else
{
if(strcmp(gacinfo[playerid][email], inputtext, true, 129) == 0)
{
format(string, sizeof(string), "[TNW] Ingresa tъ contraseсa");
ShowPlayerDialog(playerid, LOGIN2, DIALOG_STYLE_PASSWORD,"contraseсa:",string,"Siguiente","Salir");
}
else
{
SendClientMessage(playerid, -1, "[TNW] Error email incorrecto.");
format(string, sizeof(string), "[TNW] Error email Invalido.");
ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_INPUT, "email:",string,"Siguiente", "salir");
}
}
}
case LOGIN2:
{
if(!response)
{
Kick(playerid);
}
if(IsNull(inputtext))
{
SendClientMessage(playerid, -1, "[TNW] Escribe tъ contraseсa");
format(string, sizeof(string), "[TNW] Error completa el espacio.");
ShowPlayerDialog(playerid, LOGIN2, DIALOG_STYLE_INPUT, "email:",string,"Siguiente", "salir");
}
else
{
if(strcmp(gacinfo[playerid][gpassword], inputtext, true, 128) == 0)
{
format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `name` = '%s'", pName);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 1, playerid);
}
else
{
SendClientMessage(playerid, -1, "[TNW] Error contraseсa incorrecta.");
format(string, sizeof(string), "[TNW] Error contraseсa Invalida.");
ShowPlayerDialog(playerid, LOGIN2, DIALOG_STYLE_PASSWORD, "contraseсa:",string,"Entrar", "salir");
}
}
}
case REGISTRO:
{
if(!response)
{
SendClientMessage(playerid, -1, "Kicked");
Kick(playerid);
}
if(response)
{
if(!strlen(inputtext))
{
Kick(playerid);
}
new string2[129];
NewRegister(playerid);
format(string2, sizeof(string2), "%s", inputtext); gacinfo[playerid][gpassword] = string2;
format(Query, sizeof(Query), "INSERT INTO `accounts` (name, password, email) VALUES ('%s', '%s', '%s')",pName, gacinfo[playerid][gpassword],gacinfo[playerid][email]);
mysql_function_query(Conecction, Query, true, "OnAccountRegister", "ii", 0, playerid);
}
}
case REGISTRO2:
{
if(!response)
{
SendClientMessage(playerid, -1, "Kicked");
Kick(playerid);
}
if(response)
{
if(!strlen(inputtext))
{
Kick(playerid);
}
new string2[129];
format(string2, sizeof(string2), "%s", inputtext); gacinfo[playerid][email] = string2;
format(string, sizeof(string), "[TNW] Seleeciona tu genero");
ShowPlayerDialog(playerid, REGISTRO3, DIALOG_STYLE_LIST,"Genero:","Hombre\nMujer","Entrar","Salir");
}
}
case REGISTRO3:
{
if(!response)
{
SendClientMessage(playerid, -1, "Kicked");
Kick(playerid);
}
if(response)
{
switch(listitem)
{
case 0: gacinfo[playerid][gender] = 1;
case 1: gacinfo[playerid][gender] = 2;
}
format(string, sizeof(string), "[TNW] Ingresa una contraseсa");
ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_PASSWORD,"Contraseсa:",string,"Siguiente","Salir");
}
}
}
return 1;
}
/////ACOUNT REGISTER
forward OnAccountRegister(playerid);
public OnAccountRegister(playerid)
{
gacinfo[playerid][id] = mysql_insert_id();
printf("[Registro] Se ha creado una nueva cuenta, ID de la base de datos: [%d]", gacinfo[playerid][id]);
new Query[256];
format(Query, sizeof(Query), "INSERT INTO `users` (account_id) VALUES ('%d')",gacinfo[playerid][id]);
mysql_function_query(Conecction, Query, true, "OnQueryFinish", "ii", 0, playerid);
}
please help me i can't load the health, armour, posx y or z from the user's table... i don't know so much of mysql but really i need help
You format the query which selects from accounts but you don't send it with mysql_function_query
I tried with the code that was in comment, and nothing, did not charge, neither life, nor anything ...
emmm wait.. i tried again and it worked lol...
I didn't post any code, I just quoted your code and told you that you forgot to send the query
then.... is this the correct form??
Hey look at this i have a wtf problem... is the next: i create two accounts, the firts is test1, the second test2.
okey it was nice, the data saved. now, i wanted sing up with test1, but the password was wrong, i put the password of the test2 and it loged, but with the info of the player "test2" look this img.
the two accounts created.
You're using MD5 hash while you're saving password in plain text..., I guess you know your problem now.