Ir para conteúdo

Arquivado

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

Felipe Gusmão

Condicional, como fazer?

Recommended Posts

Como eu faço para colocar uma condicional?

Quero que primeiro execute as linhas 07,08,09.. depois que executar e ficar ultimo='A' então executa as linhas 11,12,13 ... depois que executar e ficar ultimo='B' então executa as linhas 15,16,17

 

1- Se ultimo<>'A' e ao executar as linhas 07,08,09 passar a ser ultimo='A', então suspende as execuções.

2 - Se ultimo<>'B' e ao executar as linhas 11,12,13 passar a ser ultimo='B' então suspende as execuções.

3 - Se ultimo<>'C' e ao executar as linhas 15,16,17 passar a ser ultimo='C' então suspende as execuções.

 

Resumindo: quero executar as linhas 07,08,09 ... após executar, se houver alguma alteração, então não faz mais nada, mas se não houver alteração, então executa as linhas 11,12,13 ... após executar, se houver alguma alteração, então não faz mais nada, mas se não houver alteração, então executa as linhas 15,16,17.

 

Espero que consigam entender

01 SET @idmil = 1;
02 UPDATE mil SET mABC=LEAST(A,B,C) WHERE ID=@idmil;
03 UPDATE mil SET mAB=LEAST(A,B) WHERE ID=@idmil;
04 UPDATE mil SET mAC=LEAST(A,C) WHERE ID=@idmil;
05 UPDATE mil SET mBC=LEAST(B,C) WHERE ID=@idmil;
06
07 UPDATE mil SET ultimo='A', A=A+1 WHERE ID=@idmil AND A=mABC AND ultimo<>'A';
08 UPDATE mil SET ultimo='A', A=A+1 WHERE ID=@idmil AND A=mAB AND ultimo<>'A' AND ultimo='C' AND ultimo<>'B';
09 UPDATE mil SET ultimo='A', A=A+1 WHERE ID=@idmil AND A=mAC AND ultimo<>'A' AND ultimo='B' AND ultimo<>'C';
10
11 UPDATE mil SET ultimo='B', B=B+1 WHERE ID=@idmil AND B=mABC AND ultimo<>'B';
12 UPDATE mil SET ultimo='B', B=B+1 WHERE ID=@idmil AND B=mBC AND ultimo<>'B' AND ultimo='A' AND ultimo<>'C';
13 UPDATE mil SET ultimo='B', B=B+1 WHERE ID=@idmil AND B=mAB AND ultimo<>'B' AND ultimo='C' AND ultimo<>'A'; 
14
15 UPDATE mil SET ultimo='C', C=C+1 WHERE ID=@idmil AND C=mABC AND ultimo<>'C';
16 UPDATE mil SET ultimo='C', C=C+1 WHERE ID=@idmil AND C=mAC AND ultimo<>'C' AND ultimo='B' AND ultimo<>'A';
17 UPDATE mil SET ultimo='C', C=C+1 WHERE ID=@idmil AND C=mBC AND ultimo<>'C' AND ultimo='A' AND ultimo<>'B';
18
19 /*só para visualizar na tela*/
20 SELECT ID,guerra,A,B,C,ultimo FROM mil WHERE ID=@idmil;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu creio que esse controle vc terá que fazer dentro da aplicação, com sua linguagem de programação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu William,

Consegui resolver usando mysql e php:

require("conexao.php"); 

$consultaa = mysql_query("select a from mil where id=1");
$cona = mysql_fetch_array($consultaa);
$consultab = mysql_query("select b from mil where id=1");
$conb = mysql_fetch_array($consultab);
$consultac = mysql_query("select c from mil where id=1");
$conc = mysql_fetch_array($consultac);


$consulta = mysql_query("select ultimo from mil where id=1");
$linha = mysql_fetch_array($consulta);

	if (( $linha['ultimo'] == 'C' ) and ( $cona['a'] <= $conb['b'] )){
mysql_query ("UPDATE mil SET ultimo='A', A=A+1 WHERE ID=1 AND ultimo<>'A'") or die(mysql_error());;
echo "ALTEROU 08-12<br />";
		
	} elseif (( $linha['ultimo'] == 'C' ) and ( $conb['b'] <= $cona['a'] )){
mysql_query ("UPDATE mil SET ultimo='B', B=B+1 WHERE ID=1 AND ultimo<>'B'") or die(mysql_error());;
echo "ALTEROU 12-16<br />";		
			
	} elseif (( $linha['ultimo'] == 'A' ) and ( $conb['b'] <= $conc['c'] )){	
mysql_query ("UPDATE mil SET ultimo='B', B=B+1 WHERE ID=1 AND ultimo<>'B'") or die(mysql_error());;	
echo "ALTEROU 12-16<br />";		
	
	} elseif (( $linha['ultimo'] == 'A' ) and ( $conc['c'] <= $conb['b'] )){		
mysql_query ("UPDATE mil SET ultimo='C', C=C+1 WHERE ID=1 AND ultimo<>'C'") or die(mysql_error());;
echo "ALTEROU 16-20<br />";

	} elseif (( $linha['ultimo'] == 'B' ) and ( $cona['a'] <= $conc['c'] )){	
mysql_query ("UPDATE mil SET ultimo='A', A=A+1 WHERE ID=1 AND ultimo<>'A'") or die(mysql_error());;
echo "ALTEROU 08-12<br />";

	} elseif (( $linha['ultimo'] == 'B' ) and ( $conc['c'] <= $cona['a'] )){		
	mysql_query ("UPDATE mil SET ultimo='C', C=C+1 WHERE ID=1 AND ultimo<>'C'") or die(mysql_error());;
echo "ALTEROU 16-20<br />";
	
	}

Thanks :)

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.