Ir para conteúdo

POWERED BY:

Arquivado

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

lauinsane

[Resolvido] Confirmação de delete, excluindo arquivo

Recommended Posts

Primeiramente agradecer pelo código que foi apresentado, pois foi o unico que consegui adaptar no sisteminha que estou fazendo pra aprender mais PHP.

 

Só que me surgiu um problema e não estou conseguindo achar a cura. Coloquei na parte de gerenciamento de um sistema de notícias onde só é excluido uma entrada no BD e tá ok, lá não deu nada de problemas, o problema acontece quando vou excluir além da entrada no BD, um arquivo de imagem dentro de uma pasta. Ele me pergunta se quero excluir, clicando em OK ele dá um refresh e não acontece nada.

 

 

O id que quero excluir está no BD como 38, mas o link que retorna na barra de endereços é http://localhost/main.php?cat=time&acao=excluir&id=4

(Uso querystring, então cat=time é a página abaixo:

 

 

 

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

	$id = $_GET["id"];

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

	$consulta = mysql_query("SELECT * FROM cad_time WHERE id = '$id'");
	$resultado = mysql_fetch_object($consulta);
	$imagem = $resultado->imagem;

		if($imagem == "") {
			echo "";
		} else {

		if(file_exists('../' . $resultado->imagem)){
  		unlink('../' . $resultado->imagem);

	mysql_query("DELETE FROM cad_time WHERE id = '$id'");
	}
	}
	}
?>

<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function confirmacao(idCadastro){ 
if (confirm (" Deseja realmente excluir esta notícia? "))
{  
window.location.href = "?cat=time&acao=excluir&id="+idCadastro;    
}     
else    
{      
return false;  
}
}
</script>
</head>
<body>

<table width="525" border="0" cellspacing="0" cellpadding="0">
<tr> 
<td> 
<?
	$sql = mysql_query("SELECT * FROM cad_time ORDER BY id DESC"); 
	while ($linha = mysql_fetch_array($dados)) {
	$id = $linha['id'];
	$imagem = $linha['imagem'];
?>
<tr>
<td valign='bottom'>
<table width='160' border='0' cellspacing='2' cellpadding='1'>
<tr>
<td width="160"><img src="<? echo "thumb_time.php?imagem=../$imagem"; ?>"></td>
</tr>
<tr>
<td><table width='160' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td><a href='?cat=time⊂=editar&id=<? echo "$id" ?>'>Editar</a></td>
<td><a href="#" onclick="confirmacao('<? echo $id['idCadastro']?>')">Excluir</a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dividi o teu tópico, a referência se encontra em:

http://forum.imasters.com.br/index.php?/topic/377606-confirmacao-de-delete/

 

tenta assim:

<?php
	include 'include/conecta.php';

	$id = isset( $_GET['id'] ) ? $_GET['id'] : null;

	if( $_GET['acao'] == 'excluir' && $id!=null )
	{
		$consulta = mysql_query( "SELECT `imagem` FROM `cad_time` WHERE `id` = $id" )or die( mysql_error() );
		$resultado = mysql_fetch_object($consulta);

		$sql = "DELETE FROM `cad_time` WHERE `id` = {$id}";
		$del = mysql_query( $sql )or die( mysql_error() );
		if( $del )//se conseguir deletar do banco
		{
			if( is_file( '../'.$resultado->imagem ) )//ai verifica se é um arquivo
				unlink( '../'.$resultado->imagem );//ai deleta ele
		}
	}
?>
não tem nenhum erro na parte Javascript. Mas pelo teu if parece que nem todos os arquivos possuem imagens, então é melhor deixar a condição com a lógica inversa.. 'se excluir do banco, ai sim tenta deletar o arquivo'.

Além disso, se o campo `id` é um INT não pode colocar aspas no valor dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz dessa forma e continua passando o id "4", sendo que o que quero excluir está no BD com id 38. Não estou achando de onde está passando esse id=4 pelo link.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Achei que tinha resolvido mas não foi ainda. Vou postar todo o código para analise pois inventei de colcoar uma páginação de resultados, e pode ser que esteja interferindo. peço a ajuda novamente pois li o código e não achei o que pode ser.

 

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

	$id = $_GET["id"];

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

	$consulta = mysql_query("SELECT * FROM cad_time WHERE id = '$id'");
	$resultado = mysql_fetch_object($consulta);
	$imagem = $resultado->imagem;

     if($imagem == "") {
	 	echo "";
	 } else {

	if(file_exists('../' . $resultado->imagem)){
	unlink('../' . $resultado->imagem);
	} 
	}
	mysql_query("DELETE FROM cad_time WHERE id = '$id'");
	}



	$pagina = $_GET['pagina'];
	$sql = mysql_query("SELECT * FROM cad_time ORDER BY id DESC"); 
	$lpp = 5; 
	$total = mysql_num_rows($sql); 
	$paginas = ceil($total / $lpp); 
		if(!isset($pagina)) { 
	$pagina = 0; 
	} 
	$inicio = $pagina * $lpp; 
	$dados = mysql_query("SELECT * FROM cad_time ORDER BY id DESC LIMIT $inicio, $lpp");
	
	$conta = mysql_num_rows($dados);
		if($conta == "0"){
			echo "Sem times cadastrados.";
	} else {
	
	$colunas="3";
	$cont="1";
	
		while ($linha = mysql_fetch_array($dados)) {
	$id = $linha['id'];
	$nome_completo = $linha['nome_completo'];
	$nome = $linha['nome'];
	$apelido = $linha['apelido'];
	$estadio = $linha['estadio'];
	$imagem = $linha['imagem'];

		if($cont==1){
?>
<html>
<head>
<title>Documento sem título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script>
function confirmacao(idCadastro){ 
if (confirm (" Deseja realmente excluir esta notícia? "))
{  
window.location.href = "?cat=time&acao=excluir&id="+idCadastro;    
}     
else    
{      
return false;  
}
}
</script>
</head>

<body>

<table width="525" border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td> 
<tr>
					<td valign='bottom'>
<table width='200' border='0' cellspacing='2' cellpadding='1'>
						<tr>
							<td width="160"><? echo "$nome_completo"; ?></td>
						</tr>
						<tr>
						  <td><img src="<? echo "thumb_time.php?imagem=../$imagem"; ?>"></td>
					  </tr>
						<tr>
						  <td><? echo "$apelido"; ?></td>
	    </tr>
						<tr>
						  <td><? echo "$estadio"; ?></td>
	    </tr>
						<tr>
						  <td><table width='160' border='0' cellspacing='0' cellpadding='0'>
                            <tr>
                              <td><a href='?cat=time⊂=editar&id=<? echo "$id" ?>'>Editar</a></td>
                              <td><a href="#" onClick="confirmacao('<? echo $id['idCadastro']?>')">Excluir</a></td>
                            </tr>
                          </table></td>
	    </tr>
					</table>
				</td>
		<?
		} else {
		?>
			<td valign='bottom'><table width='200' border='0' cellspacing='2' cellpadding='1'>
              <tr>
                <td width="160"><? echo "$nome_completo"; ?></td>
              </tr>
              <tr>
                <td><img src="<? echo "thumb_time.php?imagem=../$imagem"; ?>"></td>
              </tr>
              <tr>
                <td><? echo "$apelido"; ?></td>
              </tr>
              <tr>
                <td><? echo "$estadio"; ?></td>
              </tr>
              <tr>
                <td><table width='160' border='0' cellspacing='0' cellpadding='0'>
                    <tr>
                      <td><a href='?cat=time⊂=editar&id=<? echo "$id" ?>'>Editar</a></td>
                      <td><a href="#" onClick="confirmacao('<? echo $id['idCadastro']?>')">Excluir</a></td>
                    </tr>
                </table></td>
              </tr>
            </table></td>
				<?
	}

		if($cont==$colunas){
			echo "</tr>";
	$cont=0;
	}
	$cont++;
}
?>
</table>
<table width="525" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td>
	<?
		if($pagina > 0) {
	$menos = $pagina - 1;
	$url = "?cat=time&pagina=$menos";
		echo "<a href='$url'>Anterior</a>"; 
	}
		for($i=0;$i<$paginas;$i++) { 
	$url = "?cat=time&pagina=$i";
		echo " [ <a href='$url'>$i</a> ] ";
	}
		if($pagina < ($paginas - 1)) { 
	$mais = $pagina + 1;
	$url = "?cat=time&pagina=$mais";
		echo "<a href='$url'>Próxima</a>";
	}
	}
?>
    </td>
  </tr>
</table>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, e qual é a dúvida agora?

deu erro? qual ?

 

Esse loop está bem estranho, você não deve repetir as tags: <html>, <head>, <body>..

Não use: <? prefira usar a tag completa: <?php

 

Aqui não está errado:

<td><a href="#" onclick="confirmacao('<? echo $id['idCadastro']?>')">Excluir</a></td>
o campo da tua tabela não é apenas id ??

 

essa atribuição aqui:

$id = $linha['id'];
        $nome_completo = $linha['nome_completo'];
        $nome = $linha['nome'];
        $apelido = $linha['apelido'];
        $estadio = $linha['estadio'];
        $imagem = $linha['imagem'];
é totalmente desnecessária. Trabalhe com o array diretamente..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi, e qual é a dúvida agora?

deu erro? qual ?

 

Esse loop está bem estranho, você não deve repetir as tags: <html>, <head>, <body>..

Não use: <? prefira usar a tag completa: <?php

 

Aqui não está errado:

<td><a href="#" onclick="confirmacao('<? echo $id['idCadastro']?>')">Excluir</a></td>
o campo da tua tabela não é apenas id ??

 

essa atribuição aqui:

$id = $linha['id'];
        $nome_completo = $linha['nome_completo'];
        $nome = $linha['nome'];
        $apelido = $linha['apelido'];
        $estadio = $linha['estadio'];
        $imagem = $linha['imagem'];
é totalmente desnecessária. Trabalhe com o array diretamente..

 

 

 

 

 

 

 

Resolvi o código da seguinte forma, esqueci de colocar antes aqui, ficou mais simples e funciona que é uma beleza...

 

<script language=javascript>
function confirmDelete(){
return confirm("Você tem certeza que quer excluir essa notícia?");
}
</script>

<td><a href="?cat=gvnews&acao=excluir&id=<?php echo $id; ?>" onclick="return confirmDelete();">Excluir</a></td>

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.