[Ajuda] mysqlІ
#1

Estou fazendo um sistema de gangs em mysql e estou com problemas para carregar os dados da gang do player:
Tabelas:

pawn Код:
// topo do gm
#define MAX_SOLTS (25)
enum tInfo
{
    tNome,
    tCor,
    tBaseX,
    tBaseY,
    tBaseZ
}

new TeamInfo[MAX_SOLTS][tInfo];

new tQuery[500];
Abaixo verifica se existe algo em ''Team'' no registro com o nome do player na tabela mteams, se existir armazena o conteudo da coluna Team em ''TeamInfo[playerid][tNome]'' e chama a callback MySQL_CarregarTeamm(playerid); que carrega os dados restantes.
pawn Код:
public MySQL_seexisteteam(playerid){
    format(tQuery,sizeof(tQuery),"SELECT `Team` FROM `mteams` WHERE `Nome` = '%s'",GetName(playerid)); // GetName й uma stock pra getar o nome do player e funciona normalmente
    mysql_function_query(gSQL,tQuery,true,"r@MySQL_seexisteteam","d",playerid);
    SendClientMessage(playerid, GREEN, "DEBUG seexisteteam");
    return 1;
}
public r@MySQL_seexisteteam(playerid){
    new rows,fields;
        cache_get_data(rows,fields,gSQL);
    if(rows){
        cache_get_field_content(0,"Team",tQuery,gSQL);
                TeamInfo[playerid][tNome] = strval(tQuery);
        MySQL_CarregarTeamm(playerid);
        SendClientMessage(playerid, GREEN, "DEBUG Exist_Team true");
        HaveTeam[playerid] = true; 
    }  
    else
        HaveTeam[playerid] = false;
        SendClientMessage(playerid, GREEN, "DEBUG Exist_Team false");
    return 1;
}
seleciona tudo da tabela teams em que o tNome й o valor armazenado em TeamInfo[playerid][tNome] (armazena no codigo acima), e depois armazena o resto dos dados
pawn Код:
public MySQL_CarregarTeamm(playerid){
    format(tQuery,sizeof(tQuery),"SELECT * FROM `teams` WHERE `tNome` = '%s'",TeamInfo[playerid][tNome]);
    mysql_function_query(gSQL,tQuery,true,"r@MySQL_CarregarTeamm","d",playerid);
    SendClientMessage(playerid, GREEN, "DEBUG MySQL_CarregarTeamm");
    return 1;
}
public r@MySQL_CarregarTeamm(playerid){
    new rows,fields;
    cache_get_data(rows,fields,gSQL);
    if(rows){
    cache_get_field_content(0,"tNome",tQuery,gSQL);
        TeamInfo[playerid][tNome] = strval(tQuery);
       
        cache_get_field_content(0,"tCor",tQuery,gSQL);
        TeamInfo[playerid][tCor] = strval(tQuery);
       
        cache_get_field_content(0,"tBaseX",tQuery,gSQL);
        TeamInfo[playerid][tBaseX] = strval(tQuery);
       
        cache_get_field_content(0,"tBaseY",tQuery,gSQL);
        TeamInfo[playerid][tBaseY] = strval(tQuery);
               
        cache_get_field_content(0,"tBaseZ",tQuery,gSQL);
        TeamInfo[playerid][tBaseY] = strval(tQuery);
    SendClientMessage(playerid, GREEN, "DEBUG r@MySQL_CarregarTeamm ");
    }
    else
        SendClientMessage(playerid,-1,"Houve um erro com seu team");
    return 1;
}
No gm tem outros sistemas que usa esses dados da gang mais nгo funciona pq n armazena nada, Help! D=
Reply
#2

Diga qual й o problema que fica mais fбcil ajudar
Reply
#3

TeamInfo[playerid][tNome] = strval(tQuery);

"Team" na tabela mteams й uma string
Reply
#4

Quote:
Originally Posted by Joao Pedro
Посмотреть сообщение
Diga qual й o problema que fica mais fбcil ajudar
Editei o topico com mais informaзoes
Quote:
Originally Posted by [Y]Falcon
Посмотреть сообщение
TeamInfo[playerid][tNome] = strval(tQuery);

"Team" na tabela mteams й uma string
Desculpe nгo entendi o que vc quis dizer
Reply
#5

Ele quis dizer que para vocк armazenar o tQuery na TeamInfo[playerid][tNome], vocк nгo precisa usar o strval.

TeamInfo[playerid][tNome] = tQuery;
Reply
#6

Quote:
Originally Posted by Joao Pedro
Посмотреть сообщение
Ele quis dizer que para vocк armazenar o tQuery na TeamInfo[playerid][tNome], vocк nгo precisa usar o strval.

TeamInfo[playerid][tNome] = tQuery;
Mudei e deu esse erro ne todos TeamInfo[playerid][]
Код:
error 006: must be assigned to an array
Reply
#7

Vocк sу tirou o strval() do nome?

Sу nesse:

Quote:

TeamInfo[playerid][tNome] = tQuery;

Reply
#8

use format para salvar o nome.

pawn Код:
format(TeamInfo[playerid][tNome], 30, tQuery);

e na enum de um valor para tNome,

tNome[50]

----------------------------
#edit: nгo, espera isso ai tб tudo zuado... deixa eu arrumar.
Reply
#9

pawn Код:
enum tInfo
{
    tNome,
...
Reply
#10

pawn Код:
// topo do gm
#define MAX_SOLTS (25)
enum tInfo
{
    tNome[50],
    tCor,
    Float:tBaseX,
    Float:tBaseY,
    Float:tBaseZ
}

new TeamInfo[MAX_SOLTS][tInfo];

new tQuery[500];
pawn Код:
public MySQL_seexisteteam(playerid){
    format(tQuery,sizeof(tQuery),"SELECT `Team` FROM `mteams` WHERE `Nome` = '%s'",GetName(playerid)); // GetName й uma stock pra getar o nome do player e funciona normalmente
    mysql_function_query(gSQL,tQuery,true,"r@MySQL_seexisteteam","d",playerid);
    SendClientMessage(playerid, GREEN, "DEBUG seexisteteam");
    return 1;
}
public r@MySQL_seexisteteam(playerid){
    new rows,fields;
        cache_get_data(rows,fields,gSQL);
    if(rows){
        cache_get_field_content(0,"Team",tQuery,gSQL);
        format(TeamInfo[playerid][tNome], 50, tQuery);
       
        MySQL_CarregarTeamm(playerid);
        SendClientMessage(playerid, GREEN, "DEBUG Exist_Team true");
        HaveTeam[playerid] = true;
    }  
    else
        HaveTeam[playerid] = false;
        SendClientMessage(playerid, GREEN, "DEBUG Exist_Team false");
    return 1;
}
pawn Код:
public MySQL_CarregarTeamm(playerid){
    format(tQuery,sizeof(tQuery),"SELECT * FROM `teams` WHERE `tNome` = '%s'",TeamInfo[playerid][tNome]);
    mysql_function_query(gSQL,tQuery,true,"r@MySQL_CarregarTeamm","d",playerid);
    SendClientMessage(playerid, GREEN, "DEBUG MySQL_CarregarTeamm");
    return 1;
}
public r@MySQL_CarregarTeamm(playerid){
    new rows,fields;
    cache_get_data(rows,fields,gSQL);
    if(rows){
    cache_get_field_content(0,"tNome",tQuery,gSQL);
       
        cache_get_field_content(0,"tCor",tQuery,gSQL);
        TeamInfo[playerid][tCor] = strval(tQuery);
       
        cache_get_field_content(0,"tBaseX",tQuery,gSQL);
        TeamInfo[playerid][tBaseX] = floatstr(tQuery);
       
        cache_get_field_content(0,"tBaseY",tQuery,gSQL);
        TeamInfo[playerid][tBaseY] = floatstr(tQuery);
               
        cache_get_field_content(0,"tBaseZ",tQuery,gSQL);
        TeamInfo[playerid][tBaseY] = floatstr(tQuery);
    SendClientMessage(playerid, GREEN, "DEBUG r@MySQL_CarregarTeamm ");
    }
    else
        SendClientMessage(playerid,-1,"Houve um erro com seu team");
    return 1;
}
agora sim, deu uma melhorada...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)