Jump to content
  • 0
Sign in to follow this  
Noturn

[Dúvida] Comparar informações sql

Question

Bom dia gente, estou precisando de uma forcinha com algo...

Tenho uma tabela custom da seguinte maneira:

query_sql "insert into `char_info` (`account_id`, `char_id`, `nome`) values ('"+ getcharid(3) +"', '"+ getcharid(0) +"', '" + strcharinfo(0) + "')";

Meu Tópico travou e não estou conseguindo editar.

A dúvida é: A minha dúvida é: como saber se o char_id presente na tabela, é o mesmo char id de quem está usando o script? Como fazer essa comparação?

Share this post


Link to post
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Essa tabela teria as informações de todos que usam esse comando e depois eu faria a comparação dele na Label OnPCDieEvent. Só que não sei porque o que eu fiz não deu certo.

fiz isso:

OnPCDieEvent:

if (query_sql "SELECT `char_id` FROM `char_info` WHERE `char_id` = "+getcharid(0)+"")){ //verifica se o getcharid(0) de quem morre está presente na tabela

atcommand "@kick "+getcharid(0);

}

end;

ah sim... no caso foi pq vc não passo a variavel, e ela q deveria ser comparada tipo assim:

OnPCDieEvent:query_sql("SELECT `char_id` FROM `char_info` WHERE `char_id` = '"+getcharid(0)+"' LIMIT 1",.@charid);if (.@charid){      //verifica se o getcharid(0) de quem morre está presente na tabelaatcommand "@kick "+getcharid(0);}end;

isso aí deve funcionar

***obs importante:

Lembrando que como eu não vi seu script eu não sei quando que esses ID's estão indo pra tabela, e se depois eles tão tendo um gerenciamento devido, sendo retirado de la e etc. Porque como você usou OnPcDieEvent se o cara morrer em qualquer outro lugar no servidor, e se o nome tiver na tabela ele vai ser kickado "de graça" entende?!

Mas fiz acreditando que alguma parte do script deve cuidar disso já!

  • Love 2

Share this post


Link to post
Share on other sites
  • 0

Bom dia gente, estou precisando de uma forcinha com algo...

Tenho uma tabela custom da seguinte maneira:

query_sql "insert into `char_info` (`account_id`, `char_id`, `nome`) values ('"+ getcharid(3) +"', '"+ getcharid(0) +"', '" + strcharinfo(0) + "')";

Meu Tópico travou e não estou conseguindo editar.

A dúvida é: A minha dúvida é: como saber se o char_id presente na tabela, é o mesmo char id de quem está usando o script? Como fazer essa comparação?

Só vc fazer assim:

Vc vai fazer passar o que vc quer dentro da query tipo um SELECT, INSERT etc, e depois no WHERE que é a condição vai ficar tipo assim:

query_sql("... WHERE `char_id` = '"+getcharid(0)+"';

Mas pra eu entender melhor diga... o que você ta querendo fazer no banco de dados que precisa dessa condição? pq daí eu ja te explico melhor

  • Love 1

Share this post


Link to post
Share on other sites
  • 0

Só vc fazer assim:

Vc vai fazer passar o que vc quer dentro da query tipo um SELECT, INSERT etc, e depois no WHERE que é a condição vai ficar tipo assim:

query_sql("... WHERE `char_id` = '"+getcharid(0)+"';

Mas pra eu entender melhor diga... o que você ta querendo fazer no banco de dados que precisa dessa condição? pq daí eu ja te explico melhor

@RodRich,

A ideia eh a seguinte: eu queria gravar no banco de dados as informações de todos que utilizam um determinado comando, por isso o insert acima.

Só que em determinado momento, iria existir uma comparação se o char_id de quem está utilizando o script é o mesmo que está está presente nessa tabela.

@offtopic

Acho que tem alguma coisa bugada no pc que to usando, nem like estou conseguindo dar.

Share this post


Link to post
Share on other sites
  • 0

@RodRich,

A ideia eh a seguinte: eu queria gravar no banco de dados as informações de todos que utilizam um determinado comando, por isso o insert acima.

Só que em determinado momento, iria existir uma comparação se o char_id de quem está utilizando o script é o mesmo que está está presente nessa tabela.

@offtopic

Acho que tem alguma coisa bugada no pc que to usando, nem like estou conseguindo dar.

Cara mas dentro dessa tabela ia ter apenas 1 valor?? 1 char por vez é isso??

Se for isso não vejo motivos pra utilizar uma tabela só pra isso. Você pode salvar em uma array que o desempenho vai ser melhor.

Mas enfim, se for isso me diga que eu te ajudo conforme precisar!!

  • Love 1

Share this post


Link to post
Share on other sites
  • 0

Cara mas dentro dessa tabela ia ter apenas 1 valor?? 1 char por vez é isso??

Se for isso não vejo motivos pra utilizar uma tabela só pra isso. Você pode salvar em uma array que o desempenho vai ser melhor.

Mas enfim, se for isso me diga que eu te ajudo conforme precisar!!

Essa tabela teria as informações de todos que usam esse comando e depois eu faria a comparação dele na Label OnPCDieEvent. Só que não sei porque o que eu fiz não deu certo.

fiz isso:

OnPCDieEvent:

if (query_sql "SELECT `char_id` FROM `char_info` WHERE `char_id` = "+getcharid(0)+"")){ //verifica se o getcharid(0) de quem morre está presente na tabela

atcommand "@kick "+getcharid(0);

}

end;

Share this post


Link to post
Share on other sites
  • 0

ah sim... no caso foi pq vc não passo a variavel, e ela q deveria ser comparada tipo assim:

OnPCDieEvent:query_sql("SELECT `char_id` FROM `char_info` WHERE `char_id` = '"+getcharid(0)+"' LIMIT 1",.@charid);if (.@charid){      //verifica se o getcharid(0) de quem morre está presente na tabelaatcommand "@kick "+getcharid(0);}end;

isso aí deve funcionar

***obs importante:

Lembrando que como eu não vi seu script eu não sei quando que esses ID's estão indo pra tabela, e se depois eles tão tendo um gerenciamento devido, sendo retirado de la e etc. Porque como você usou OnPcDieEvent se o cara morrer em qualquer outro lugar no servidor, e se o nome tiver na tabela ele vai ser kickado "de graça" entende?!

Mas fiz acreditando que alguma parte do script deve cuidar disso já!

Muito obrigado RodRich, eu já tinha quebrado muito a cabeça com isso.

Só uma coisa que ainda não está funcionando é que essa Label não funciona com os players que estão com o autotrade, não sei porque. Se puder me dar uma última força com isso, agradeço. Mas desde já obrigado pelo que você já fez. :)

Share this post


Link to post
Share on other sites
  • 0

A Label aparentemente pula os jogadores no modo de venda. Qual seria o propósito, ideia original do seu script? Possa ser que tenha mais soluções, até as vezes mais simples de se resolver o que quer fazer.

  • Love 1

Share this post


Link to post
Share on other sites
  • 0

A Label aparentemente pula os jogadores no modo de venda. Qual seria o propósito, ideia original do seu script? Possa ser que tenha mais soluções, até as vezes mais simples de se resolver o que quer fazer.

Consegui resolver ontem, era mais "simples" do que eu pensava mesmo. Resolvi com alterações na source.

Obrigado RodRich e Arkwright. :)

Share this post


Link to post
Share on other sites
  • 0

Aviso automático:

Esse tópico foi fechado por um moderador.

Motivo: Resolvido

Se você não concorda com esta ação, vá até o Tribunal de Pequenas Causas.

Equipe Cronus Emulator.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...