Jump to content


Photo

[Resolvido] Deletar Multiplas Imagens De Tabela Relacionada


  • Faça o login para participar
Nenhuma resposta neste tópico

#1 Lau

Lau

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 15/02/2010, 16:01

Buenas pessoal, estou me batendo aqui pra conseguir excluir as imagens de um sisteminha de notícias. Acontece o seguinte: É jogado o id da noticia cadastrada em GVNEWS para o campo ID_NEWS da GVNEWS_IMG, para relacionar as imagens cadastradas a notícia. Estou precisando quando for deletar a notícia, sejam removidas todas as imagens do servidor relacionadas a ela e também os valores no BD, só que não estou conseguindo fazer. Consigo deletar uma das três imagens da notícia, só que as outras se mantem no servidor. Eu acredito que deve ser colocado algum código que faça loop para remover as imagens que relacionadas a notícia, só que não estou achando a lógica. Tenho a seguinte estrutura de tabelas no BD:

CREATE TABLE gvnews (
        id int(5) unsigned NOT NULL auto_increment,
        titulo varchar(255) NOT NULL,
        data date NOT NULL,
        texto text,
        PRIMARY KEY (id)
        ) ENGINE = INNODB;

CREATE TABLE gvnews_img (
        id int(5) unsigned NOT NULL auto_increment,
        id_news int(5) unsigned NOT NULL,
        imagem text,
        PRIMARY KEY (id),
        INDEX (id_news),
        FOREIGN KEY (id_news) REFERENCES gvnews(id) ON DELETE CASCADE
        ) ENGINE = INNODB;




O código que estou utilizando é este:

<?php
include ("include/conecta.php");
require_once("verifica.php");

	$id = $_GET["id"];

	if($_GET["acao"] == excluir){

	$consulta = mysql_query("SELECT * FROM gvnews_img WHERE id_news = $id");
	$resultado = mysql_fetch_object($consulta);
	$sql = "DELETE gvnews,gvnews_img FROM gvnews INNER JOIN gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id";
	$del = mysql_query($sql)or die(mysql_error());
	
	if( $del ){
	if(is_file($resultado->imagem)){
		unlink($resultado->imagem);
	} 
	}
	}
?>

<!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=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<table width="182" border="0" cellspacing="0" cellpadding="0">
  <?php
	$dados = mysql_query("SELECT * FROM gvnews ORDER BY data DESC");
	$conta = mysql_num_rows($dados);
		if($conta == "0"){
			echo "Sem noticias cadastradas";
	} else {
	?>
  <tr>
    <td width="47">ID</td>
    <td width="135">Status</td>
  </tr>
  <?php
	while($linha=mysql_fetch_array($dados)){
$id = $linha["id"];
?>
<tr>
<td><?php echo "$id" ?></td>
<td><a href="?cat=gvnews&amp;acao=excluir&amp;id=<?php echo $id; ?>">Excluir</a></td>
</tr>
<?php
}
}
?>
</table>
</body>
</html>




Qaulquer ajuda ou dica eu agradeço.

RESOLVIDO


<?
include ("include/conecta.php");
require_once("verifica.php");

	$id = $_GET["id"];

	if($_GET["acao"] == excluir){

	$consulta = mysql_query("SELECT * FROM gvnews_img WHERE id_news = $id");
	while($resultado = mysql_fetch_object($consulta)){
	unlink($resultado->imagem);
	}
	$sql = "DELETE gvnews,gvnews_img FROM gvnews INNER JOIN gvnews_img WHERE gvnews.id=$id AND gvnews_img.id_news=$id";
	$del = mysql_query($sql)or die(mysql_error());
	}
?>





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq