Ir para conteúdo

POWERED BY:

Arquivado

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

fabiossmn

[IF, ELSE] Verificar ao excluir

Recommended Posts

Olá pessoal, estou tentando verificar este codigo para excluir dados do banco,

ele faz tudo certinho, mais se ele tem erro ele nao chega a fazer o else, olha só:

$IDEmpresa = $_GET['id'];

	include "../../includes/config.php";

	$query = mysql_query("DELETE FROM empresa WHERE idEmpresa = '$IDEmpresa'") or die(mysql_error());
		if($query){	
			echo("<script language='javaScript'>window.location.href='../empresa.php?acao=atualizar&ex=excluido'</script>");
		}else{
			echo("<script language='javaScript'>window.location.href='../empresa.php?acao=atualizar&ex=erro'</script>");
		}

ja tentei fazer umas coisas pra ele dar errado, mas mesmo assim ele vai para o acao=atualizar&ex=excluido e era pra ir no acao=atualizar&ex=erro

 

e ae, o que faço?

Compartilhar este post


Link para o post
Compartilhar em outros sites
ja tentei fazer umas coisas pra ele dar errado, mas mesmo assim ele vai para o acao=atualizar&ex=excluido e era pra ir no acao=atualizar&ex=erro

Que 'coisas'?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei deixar o codigo errado...

tipo:

$query = mysql_query("DELETE FROM empresa WHERE idEmpresa = '$VariavelErrada'") or die(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haha... imaginei que fosse isso mesmo...

Então amigo, não dá erro pois não há falha na query. Você pode muito bem tentar deletar um dado que não existe, por banco de dados não faz diferença, ele simplesmente não vai encontrar nenhum registro para deletar, mas não retornará erro.

 

Se você quer exibir uma mensagem caso aquele dado não exista, você deve primeiro tentar buscá-lo no banco. Se não retornar nada, mostre a mensagem dizendo que o dado não existe...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não entendeu? Não tem erro...

 

Faz assim, ANTES desse seu código aí:

$query = mysql_query("SELECT * FROM empresa WHERE idEmpresa = '$IDEmpresa'") or die(mysql_error());
if(!query){
   echo("<script language='javaScript'>window.location.href='../empresa.php?acao=atualizar&ex=inexistente'</script>");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda nao entendi... :S

pq ali ele só faz 1 comando..

e eu queria que se ele fosse um ele fazia tal comando...

 

como posso resolver isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não pode deletar antes de verificar, utilize essa lógica:

 

<?php
$IDEmpresa = $_GET['id']; 

$sea = mysql_query("SELECT*FROM empresa WHERE idEmpresa = '$IDEmpresa'") or die (mysql_error()); //Faz a query que seleciona a tabela
  $rows = mysql_num_rows($sea); //Conta o numero de linhas da tabela

if($rows > 0){ //Se o total de linhas for maior que 0, ele deleta
mysql_query("DELETE FROM empresa WHERE idEmpresa = '$IDEmpresa'") or die(mysql_error()); 
echo("<script language='javaScript'>window.location.href='../empresa.php?acao=atualizar&ex=excluido'</script>"); 
                       }else{ //Se for menor ou igual a 0, ele retorna o erro
                               echo("<script language='javaScript'>window.location.href='../empresa.php?acao=atualizar&ex=erro'</script>"); 
                       }
?>

 

Explicando resumidamente, você verifica se existe aquela tabela no banco de dados, se caso existir ele deleta, caso não ele move para a ação de erro (conforme seu script).

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, tem algum jeito pra fazer ele dar erro para mim testar?

pq até agora ele ta fazendo tudo certinho com esse codigo novo, só que mesmo deixando variaveis erradas para ele nao pegar no banco mesmo assim ele continua mostrando como se tivesse deletado com sucesso :S

 

"Era pra ser um coisa tão simples, já virou uma história ;/"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então não é nessa página que está o erro, e sim na qual ele direciona.

 

Tente fazer assim na pagina que ele direciona:

 

<?php
if($_GET['ex'] == "erro"){
echo "Erro!"
}

if($_GET['ex'] == "excluido"){
echo "Sucesso!";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja pega o get certinho, e faz tudu certinho, ae se eu colocar na url assim:

ex=excluido [ Ae ele aparece mensagem que excluiu com sucesso ]

ex=erro [mostra erro]

ele ta tudo certinho, só que na hora de deletar, ele não ta chegando no else caso tenha erro, ae ele nao redireciona para pagina.php?ex=erro

entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

fabiossmn, esse erro que você está esperando é uma falha de conexão com o banco de dados, ou uma query mal escrita. Fora isso, não vai dar erro...

Entenda o seguinte: mesmo que você passe um ID "errado", que não existe no banco, A QUERY NÃO VAI DAR ERRO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok isso eu entendi... mais teria algum jeito de fazer com que se ele não atualizasse por qualquer que seja o motivo ele enviasse a pagina para o GET do do erro?

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.