Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

John Smiths

Procedure

Recommended Posts

Olá pessoal estou fazendo alguns exercícios e apanhando com um condenado, aqui a situação:
Eu tenho uma tabela:

idCriatura (int11) - primary
ataque (int2)
defesa (int2)
status (borlean)

 

o que preciso é criar uma procedure onde passo dois id's ele compara os ataques e se o ataque do primeiro for maior que a defesa do segundo ele mata o mesmo do segundo causa com primeiro sendo assim um update nele no status para 1 em ambos se morrerem ou nada para quem não morrer

Eu simplesmente nao sei como começar x.x

 

Não quero que façam os codigos mas quero entender o que fazer :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma forma de fazer :

 

Selecionar via sql o primeiro registro e jogar os conteúdo em memória.

Idem para o segundo registro.

 

Fazer os testes necessários (if, case etc)

 

Fazer os updates necessários

 

Veja o manual para a síntaxe das procedures e sql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal eu consegui segue ai o codigo eu testei e funciona :D

 

DELIMITER $$

CREATE DEFINER=`root`@`localhost` PROCEDURE `duelo`( in monstro1 int(11),monstro2 int(11) )
    MODIFIES SQL DATA
BEGIN

  
set @monstroAtk1 = (select  atq from creatures where id = monstro1);
set @monstroDes1 = (select  def from creatures where id = monstro1);

set @monstroAtk2 = (select  atq from creatures where id = monstro2);
set @monstroDes2 = (select  def from creatures where id = monstro2);

    if  (@monstroAtk1 >  @monstroDes2 ) then

        update creatures set modo = 2 where id = monstro2;

    elseif (@monstroAtk2 >  @monstroDes1) then

        update creatures set modo = 2 where id = monstro1;
	
	else 
		
		update creatures set modo = 2 where id = monstro2 and id = monstro1;

	END IF;

END

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.