fabiossmn 1 Denunciar post Postado Novembro 13, 2011 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
Henrique Barcelos 290 Denunciar post Postado Novembro 13, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 13, 2011 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
Henrique Barcelos 290 Denunciar post Postado Novembro 13, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 13, 2011 entao como faço pra ele verificar se houve um erro ou não? agradeço a ajuda, to quebrando a cabeça aki huashua Compartilhar este post Link para o post Compartilhar em outros sites
Henrique Barcelos 290 Denunciar post Postado Novembro 13, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 13, 2011 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
Back-on 14 Denunciar post Postado Novembro 13, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 13, 2011 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
Back-on 14 Denunciar post Postado Novembro 13, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 13, 2011 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
Henrique Barcelos 290 Denunciar post Postado Novembro 13, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 13, 2011 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
Henrique Barcelos 290 Denunciar post Postado Novembro 14, 2011 Defina 'atualizar' na sua concepção... Compartilhar este post Link para o post Compartilhar em outros sites