Divisão por zero - não aparece mensagem

PHP

29/05/2015

Gostaria que aparecesse no browser uma mensagem informando que a divisão por zero não é possivel, mas não estou conseguindo.


case "4":
	if($_POST['valor2'] != "0" )
		$resultado = $_POST['valor1'] / $_POST['valor2'];
       else 
		$resultado = "Não é possivel dividir por zero";
       break;



e na multiplicação ele não executa.
Karine Sobral

Karine Sobral

Curtidas 0

Melhor post

Karine Sobral

Karine Sobral

09/06/2015

Agora sim, entendi perfeitamente, obrigada e desculpa por qualquer coisa.
GOSTEI 1

Mais Respostas

Marcio Araujo

Marcio Araujo

29/05/2015

Posta o código completo por favor!
GOSTEI 0
Jothaz

Jothaz

29/05/2015

Gostaria que aparecesse no browser uma mensagem informando que a divisão por zero não é possivel, mas não estou conseguindo.


case "4":
	if($_POST['valor2'] != "0" )
		$resultado = $_POST['valor1'] / $_POST['valor2'];
       else 
		$resultado = "Não é possivel dividir por zero";
       break;



e na multiplicação ele não executa.


Você pode usar o try

Outros links:

[url:descricao=Exceções - PHP]http://php.net/manual/pt_BR/language.exceptions.php[/url]

[url:descricao=How to efficiently use try…catch blocks in PHP]http://stackoverflow.com/questions/17549584/how-to-efficiently-use-try-catch-blocks-in-php[/url]
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Marcio, código completo:


<html>
	<head>
		<title>Curso de PHP</title>
	</head>
	<body>
		
		<?php
		
			if ( isset($_POST['btnOperacao']) ) {
				
				$resultado = "";				
				
				switch ($_POST['operacao']){
					case "1":
						$resultado = $_POST['valor1'] + $_POST['valor2'];
						break;
				case "2":
						$resultado = $_POST['valor1'] - $_POST['valor2'];
						break;
				case "3":
						$resultado = $_POST['valor1'] * $_POST['valor2'];
						break;
				case "4":
						if($_POST['valor2'] != "0" )
							$resultado = $_POST['valor1'] / $_POST['valor2'];
						else 
							$resultado = "Não é possivel dividir por zero";
						break;
				}
			}	
			
			if ( isset($resultado) && $resultado != ""){
				echo "<h3>O resultado e: ".$resultado."</h3>";
			}
					
		?>
	
		<form method="post">
			<p>Valor 1: <input type="text" name="valor1" /></p>
			<p>Valor 2: <input type="text" name="valor2" /></p>
			
			<p>Selecione a operacao:
			
			<select name="operacao">
				<option value="1">Adicao</option>
				<option value="2">Subtracao</option>
				<option value="3">Multiplicacao</option>
				<option value="5">Divisao</option>
			</select></p>
			
			<p><input type="submit" value="Executar" name="btnOperacao" /></p>
		</form>
	</body>
</html>

GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Mas está errado Jothaz essa forma?
GOSTEI 0
Giovani Leite

Giovani Leite

29/05/2015

Tentando entender o código, tambem com dificuldade, hehehe.
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Pessoal, estou com um código que funciona, mas eu queria entender o por que este não funciona, para eu ter mais ideias.
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Tentando entender o código, tambem com dificuldade, hehehe.


Se achar alguma forma, por favor me informe!
GOSTEI 0
Giovani Leite

Giovani Leite

29/05/2015

Informo sim.
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Código completo diferente


<html>
	<head>
		<title>Curso de PHP</title>
	</head>
	<body>
		
		<?php
			
			if( isset($_POST['btnOperacao']) ) {
				
				$resultado = "";
				$valor1 = $_POST['valor1'];
				$valor2 = $_POST['valor2'];
				
				switch($_POST['operacao']){
					case "1":
						$resultado = $valor1 + $valor2;
						break;
					case "2":
						$resultado = $valor1 - $valor2;
						break;
					case "3":
						$resultado = $valor1 * $valor2;
						break;
					case "4":
						if($_POST['valor2'] != "0")
							$resultado = $valor1 / $valor2;
						else 
							$resultado = "Não é possível dividir por zero";
						break;
				}
			
			}
			
			if( isset($resultado) && $resultado != "" ){
				echo "<h3>O resultado é: ".$resultado."</h3>";
			}
			
		?>
	
		<form method="post">
			<p>Valor 1: <input type="text" name="valor1" /></p>
			<p>Valor 2: <input type="text" name="valor2" /></p>
			
			<p>Selecione a operacao: 
			
			<select name="operacao">
				<option value="1">Adição</option>
				<option value="2">Subtração</option>
				<option value="3">Multiplicação</option>
				<option value="4">Divisão</option>
			</select>
			
			</p>
			
			<p><input type="submit" value="Executar" name="btnOperacao" /></p>
		</form>
	</body>
</html>

GOSTEI 0
Giovani Leite

Giovani Leite

29/05/2015

Não consegui, sempre aparece o erro que descreveu, não aparece a mensagem.
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Sem problema Giovani, deu certo aqui, mas como disse antes, só queria o código que estava dando errado, entende-lo melho, mas obrigada.
GOSTEI 0
Marcio Araujo

Marcio Araujo

29/05/2015

Karine, já que postou os dois códigos, da para você analisar.
GOSTEI 0
David Sylvestre

David Sylvestre

29/05/2015

Karine, seu problema foi um erro de digitação.

Seu código:
<option value="5">Divisao</option>


Código funcional
<option value="4">Divisão</option>
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Poxa vida! Iria demorar muito para perceber isso! David, muito obrigada, olhei, olhei e olhei e nada!
GOSTEI 0
Marcio Araujo

Marcio Araujo

29/05/2015

Tambem passou despercebido por mim.
GOSTEI 0
Thiago Moraes

Thiago Moraes

29/05/2015

faz intval($str) por que se não se ta tentando dividir uma string cara
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Não entendi Thiago.
GOSTEI 0
Karine Sobral

Karine Sobral

29/05/2015

Thiago???
GOSTEI 0
Thiago Moraes

Thiago Moraes

29/05/2015

Então, eu vi ali, que a variavel que você está tentando dividir é uma string.
Por exemplo:
Todos os posts que pegamos, vem uma String não vem integer. (Pelos meus conhecimentos)
Você está tentando:
$valor1 = $_POST['valor1'];
$valor2 = $_POST['valor2'];
$valor1 = $valor1 / $valor2 // lembrando que isso é um exemplo.
o correto seria:
$valor1 = intval($_POST['valor1']);
$valor2 = intval($_POST['valor2']);
$valor1 = $valor1 / $valor2
GOSTEI 0
POSTAR