Ir para conteúdo

POWERED BY:

Arquivado

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

Francispansa

[Resolvido] Calculos PHP

Recommended Posts

Eu tenho um formulario em php para a venda de créditos de poker, ele esta totalmente funcional, o problema é o seguinte dependendo do valor de creditos que a pessoa queira comprar o valor de venda e diferente, ex.: se quiser comprar 10 dolares de credito o valor por dolar eh de 2 reais e 10 centavos, se a pessoa quiser comprar mais de 50 dolares de credito o valor do dolar fica em 2 reais e 5 centavos, entao meu problema é esse, como fazer para o formulario fazer essa troca de valores, tipo se for digitado de 10 dolares ate 49 o valor do dolar é 2,10 e caso seja digitado de 50 ate 100 o valor é 2,05.

 

Abaixo segue o comando que uso pra formatar o valor, mas como podem ver independente do valor digitado ele vai fazer o calculo sobre o valor 2,10.

 

//formata valor
$valor_venda = 2.10;
$resultado = ($valor_venda*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');

Como sou iniciante em PHP nao sei se tem como fazer alguma coisa do tipo:

Se o valor digitado no formulario for de 10 a 49 dolares ele faz um calculo sobre "$valor_venda" caso seja de 50 a 100 ele calcula sobre "$valor_venda2", ai no codigo php eu colocaria tipo isso:

$valor_venda = 2.10;
$resultado = ($valor_venda*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');

$valor_venda2 = 2.05;
$resultado = ($valor_venda2*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');

 

Espero que consigam entender minha duvida.

 

Se alguem puder me ajudar fico muito grato.

 

Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja:

http://www.php.net/manual/en/control-structures.if.php

 

if( $valor<50 )
  $valor_venda = 2.10;
else
  $valor_venda2 = 2.05;

$resultado = ($valor_venda2*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');
se precisar de outras faixas de valores, basta adicionar mais 'cases' ou 'else if' s

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, muito obrigado pela atenção, o caminho era esse mesmo, me codigo ficou assim:

 

if( $valor >= 10 && $valor <= 49 )
       $valor_venda = 2.10;

if( $valor >= 50 && $valor <= 99 )
       $valor_venda = 2.05;

if( $valor >= 100 && $valor <= 199 )
       $valor_venda = 2.00;

$resultado = ($valor_venda*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');

So uma pergunta, como faço para colocar " RESOLVIDO " aqui no tópico?

 

Abraço..

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se o valor for menor que 10 ?? como fica?

 

Apenas moderadores editam os titulos. Basta voltar e dizer como resolveu, que nós colocaremos o [Resolvido] http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz isso, ué..

 

if( $valor >= 10 && $valor <= 49 ){
       $valor_venda = 2.10;

}elseif( $valor >= 50 && $valor <= 99 ){
       $valor_venda = 2.05;

}elseif( $valor >= 100 && $valor <= 199 ){
       $valor_venda = 2.00;

} else { // Pra não dar nenhuma renda!
       echo "Digite somente valores entre 10 a 199";

}

if($valor >= 10 && $valor <= 199){ //Pra não calcular nada
$resultado = ($valor_venda*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal, quero agradecer mais uma vez pela atenção.

William, ainda bem que você me questionou sobre o esquema do valor ser menor que 10, pois nem tinha me tocado disso..

Então acabei deixando meu codigo assim:

if( $valor >= 1 && $valor <= 49 )
       $valor_venda = 2.10;

  if( $valor >= 50 && $valor <= 99 )
       $valor_venda = 2.05;

  if( $valor >= 100 )
       $valor_venda = 2.00;

$resultado = ($valor_venda*$valor);
$formatar_valor = number_format($resultado, 2, '.', '');

Acredito que nao terei problemas não é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, olhando pelo lado lógico do problema, e se ele entrar com 0 (zero) ou um número negativo ?

 

Se esses valores forem 'inválidos', então é bacana você adicionar um else.

Chamadas à uma cadeia de IFs, são consecutivas, precisando testar todos os IFs, mesmo que não fosse necessário, já que temos um caso em que um exclui o outro.

 

Então, else if neles!

if( $valor >= 1 && $valor < 50 )
       $valor_venda = 2.10;
else if( $valor >= 50 && $valor < 100 )
       $valor_venda = 2.05;
else if( $valor >= 100 )
       $valor_venda = 2.00;
else{
    echo 'valor inválido!'; exit();}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, olhando pelo lado lógico do problema, e se ele entrar com 0 (zero) ou um número negativo ?

 

Se esses valores forem 'inválidos', então é bacana você adicionar um else.

Chamadas à uma cadeia de IFs, são consecutivas, precisando testar todos os IFs, mesmo que não fosse necessário, já que temos um caso em que um exclui o outro.

 

Então, else if neles!

if( $valor >= 1 && $valor < 50 )
       $valor_venda = 2.10;
else if( $valor >= 50 && $valor < 100 )
       $valor_venda = 2.05;
else if( $valor >= 100 )
       $valor_venda = 2.00;
else{
    echo 'valor inválido!'; exit();}

William, tentei colocar o codigo acima com o else de valor invalido, mas ele retornava erro pois logo que o formulario estava sendo acessado ele apontava diretamente para o else "valor invalido".

 

Entao fiz o seguinte, tinha uma variavel " $erros = 1; ", que apontava quando os campos estavam vazios.

Então acrecentei a seguintes linhas:

			/*Verifica campo valor vazio*/
			if($valor == "")
				{
				$erros++;
				echo "<small class=\"erro\">O Campo valor da compra esté vazio</small><br />";
				}
				else if ( $valor <= 0 )
                {
                $erros++;
                echo "<small class=\"erro\">O Campo valor esta com um numero inválido</small><br />";
                }

Gostaria de saber o que você acha, está correto a forma como tratei essas linhas de codigo? Porque apesar de estar funcionando tudo corretamente talvez posso ter algum problema futuramente, entao como estou iniciando no PHP ficaria grato se me informasse.

 

Caso queira visitar o formulario ele se encontra nesse link:

http://fichas24h.com/web/index.php?option=com_wrapper&view=wrapper&Itemid=25

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.