Ir para conteúdo
Fórum Script Brasil
  • 0

Deletar dados - MySQL


david.lyonnais

Pergunta

Olha eu denovo aqui ... ^^

O problema é o seguinte:

Eu tenho uma class nela se encontra um metodo chamado destruirNoticia(), dai ele pega o id e deleta a noticia, ele deleta normalmente mais se coloca um id que não existe no banco de dados ele não retorna o erro.

jornal.class.php

<?php
include("noticia.interface.php");
class JornalVirtual implements Noticia{
    //Atributos
    private $id;
    private $titulo;
    private $data;
    private $autor;
    private $conteudo;
    private $categoria;
    //Tabela
    private $tabela = 'noticias';
    
    //Metodos da Interface
    function novaNoticia(){
        $this->data = date("Y-m-d");
        $sql = "INSERT INTO $this->tabela (id, titulo, categoria, autor, conteudo, data) VALUES (NULL, '$this->titulo', '$this->categoria', '$this->autor', '$this->conteudo', '$this->data')";
        $rs = mysql_query($sql);
          if(!$rs){
            $error = "Erro ao criar uma notícia #Erro:001";
            return $error;
            exit;
        }
            return true;
    }
    
    function destruirNoticia(){
          $sql = "DELETE FROM $this->tabela WHERE id=$this->id";
          $rs = mysql_query($sql);
          if(!$rs){
                   $error = "Não foi possivel deletar a notícia #Erro:002";
                   return $error;
                   exit;
          }
          return true;
    }
    
    function editarNoticia(){
        
        
    }
    
    function mostrarNoticia(){
        
        
    }
    
    //Metodos Class
    function set($prop,$valor){
        $this->$prop = $valor;    
    }
    
    function get($prop){
        return $this->$prop;    
    }
    
    function error($error,$pag){
        echo "<script language=\"javascript\"> alert(\"".$error."\");location.href=\"".$pag."\";</script>";
    }
    
}

?>
excluir.php
<?php
include("jornal.class.php");
include("conexao.class.php");

if(isset($_POST['excluir'])){

//Instanciar Classes
$noticia = new JornalVirtual();
$conexao = new Conexao();

//Conectar com o Banco de Dados
$link = $conexao->conectar('jornalvirtual');

//Setar atributo id
$noticia->set('id',$_POST['id']);

//Deletar Noticia
$res = $noticia->destruirNoticia();

//Tratar Erro
if($res != true){
        echo $noticia->error($res,'excluir.php');
        exit;
}
//Destruir Conexão com o banco de dados
$conexao->destruir($link);
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Excluir Notícia</title>
</head>

<body>
<form action="" method="POST">
<p>
   <label>ID:<input type="text" name="id" size="8"></label>
</p>
<input type="submit"  name="excluir" value="Excluir">
</form>
</body>
</html>

É isso ai, ta tenso pra descobri onde está o erro.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Concluir que a query esta retornando verdadeiro mais eu não sei porque pois o id não existe.

(RESOLVIDO)

Ele retorna verdadeiro mesmo que DELETE nenhum registro, dai fiz uma verificação com mysql_affected_rows();

e mudei algumas coisas como no if de verificar se retorno verdadeiro.

Coloquei pra função retorna o numero 0 se desse errado. Dai no if usei is_string()dai se desse verdadeiro qr dizer q retorno a mensagem de erro.

Editado por david.lyonnais
Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade, só é retornado false quando dá erro ao executar o comando (ex: campo não existe, sintaxe errada etc), caso contrário retorna true... a forma mais segura de fazer isso realmente é com a função mysql_affected_rows...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,6k
×
×
  • Criar Novo...