Ir para conteúdo

POWERED BY:

Arquivado

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

L3¢k0

Deletar registro no bd e a Pasta de Fotos do servidor do mesmo

Recommended Posts

ola pessoal

 

estou com um problema....

 

meu sistema cadastra os dados do imovél e cria uma pasta e joga a foto por um upload na pasta criada e envia o endereço pro banco, até ai ok

 

Minha duvida é na hora do delete.php, eu consigo deletar o registro do bd, mais gostaria de deletar junto a pasta de fotos do registro deletado, entaum.....

 

codigo ke estou usando para pegar os id´s dos check box e deletar do bd somente:

 

<?include "conectar.php";//pega os id´s dos check box selecionados e deleta o imovél do banco de dados$var = $_POST["checkbox"];  if ($var == ""){  header("Location: imoveis.php?id=$url");  }else{  for($i = 0; $i < count($var); $i++){  $sql = ("DELETE FROM `imoveis` WHERE `id` = '$var[$i]'");  mysql_query($sql);  header("Location: imoveis.php?id=$url");  }  } ?>

 

No banco de dados eu gravo na coluna "pasta_del" o diretorio da pasta ki deve ser deletada.... mas como faço pra inclementar o codigo de delatr o diretorio com o codigo de deletar o registro??? ta embaçado...rs

 

este é o codigo ki usei pra deletar o diretorio, mais naum por via dos check box, testei digitando o diretorio no php:

 

<?php//diretorio a ser removido$dir = 'fotos';removeTree($dir);//funçãofunction removeTree($rootDir){	if (!is_dir($rootDir))	{		return false;	}	if (!preg_match("/\\/$/", $rootDir))	{		$rootDir .= '/';	}	$stack = array($rootDir);	while (count($stack) > 0)	{		$hasDir = false;		$dir	= end($stack);		$dh	 = opendir($dir);		while (($file = readdir($dh)) !== false)		{			if ($file == '.'  ||  $file == '..')			{				continue;			}			if (is_dir($dir . $file))			{				$hasDir = true;				array_push($stack, $dir . $file . '/');			}			else if (is_file($dir . $file))			{				unlink($dir . $file);			}		}		closedir($dh);		if ($hasDir == false)		{			array_pop($stack);			rmdir($dir);		}	}	return true;}?>

E agora?? como faço pra deletar as pastas e os registros conforme os check box ki eu selecionar ???

Se tiver outro jeito de fazer isso tb, tudo bem, funcionando ta baum....rsss

 

Valew pessoal

Compartilhar este post


Link para o post
Compartilhar em outros sites

L3¢k0,Por você só estar passando o id pelos check's, você tem que primeiro fazer um "select" com o id, pegar o nome da pasta, deletar e depois dar um DELETE no banco....qq dúvida posta aí...SENSHI

Compartilhar este post


Link para o post
Compartilhar em outros sites

O embaçado é ki mais ke um id "as vezes";por exemplo, tenho 5 registros la, ai eu seleciono 3 pra deletar...tipo, selecionei os registros ki tem o id 27, 42 e 54Como eu vou fazer um select de todos este id´s e pegar os dados do campo "pasta_del" de cada um??lembrando ki a pasta_del é o campo onde esta o diretorio ki deve ser deletado...valew senshi!!!

L3¢k0,Por você só estar passando o id pelos check's, você tem que primeiro fazer um "select" com o id, pegar o nome da pasta, deletar e depois dar um DELETE no banco....qq dúvida posta aí...SENSHI

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu num entendi direito :-(Eu to fazendo assim:

<?include "conectar.php";//###########################################################################################################$var = $_POST["algumacoisa"];  if ($var == ""){  header("Location: imoveis.php?id=$url");  }else{  for($i = 0; $i < count($var); $i++){  $query = mysql_query("SELECT pasta_del FROM `imoveis` WHERE `ID` IN '" . implode("','",$var) . "'");  while($res = mysql_fetch_row($query)){	 removeTree($res[0]);	 	 //deletando a pasta de fotos do servidor//diretorio a ser removido$dir = '$res[0]';removeTree($dir);//funçãofunction removeTree($rootDir){	if (!is_dir($rootDir))	{		return false;	}	if (!preg_match("/\\/$/", $rootDir))	{		$rootDir .= '/';	}	$stack = array($rootDir);	while (count($stack) > 0)	{		$hasDir = false;		$dir	= end($stack);		$dh	 = opendir($dir);		while (($file = readdir($dh)) !== false)		{			if ($file == '.'  ||  $file == '..')			{				continue;			}			if (is_dir($dir . $file))			{				$hasDir = true;				array_push($stack, $dir . $file . '/');			}			else if (is_file($dir . $file))			{				unlink($dir . $file);			}		}		closedir($dh);		if ($hasDir == false)		{			array_pop($stack);			rmdir($dir);		}	}	return true;}	 	  }  echo "$var[$i]<br>";  mysql_query($sql);  }  }   ?>
mas esta dando este erro:Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/abriggo.com.br/httpdocs/teste/cad/deletar.php on line 1192o 92 é o echo ke imprimiu o id ki eu ia deletar, dexei o echo sem kerer, é ki estava testando pra ver se eleestava pegando os outros id´s tb, nesta parte esta tudo ok, só naum estou conseguindo deletar ainda, ta dando este erro ai :-(a linha 11 é esta: while($res = mysql_fetch_row($query)){e a 10:$query = mysql_query("SELECT pasta_del FROM `imoveis` WHERE `ID` IN '" . implode("','",$var) . "'");Falow kara

Faz uma rotina assim

$query = mysql_query("SELECT pasta_del FROM `imoveis` WHERE `id` IN '" . implode("','",$var) . "'");while($res = mysql_fetch_row($query))	 removeTree($res[0]);
Depois disso você dá o DELETE... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif SENSHI

Compartilhar este post


Link para o post
Compartilhar em outros sites

tinha alguns erros...

<?include "conectar.php";// ###########################################################################################################$var = $_POST["algumacoisa"];  if ($var == ""){	header("Location: imoveis.php?id=$url");  }else{	$query = mysql_query("SELECT pasta_del FROM `imoveis` WHERE `ID` IN '" . implode("','",$var) . "'") or die(mysql_error());	while($res = mysql_fetch_row($query))	   removeTree($res[0]);//deletando a pasta de fotos do servidor	for($i = 0; $i < count($var); $i++){	  echo "$var[$i]<br>";	  mysql_query($sql);	}  }  		function removeTree($rootDir){	if (!is_dir($rootDir))	{		return false;	}	if (!preg_match("/\\/$/", $rootDir))	{		$rootDir .= '/';	}	$stack = array($rootDir);	while (count($stack) > 0)	{		$hasDir = false;		$dir	= end($stack);		$dh	 = opendir($dir);		while (($file = readdir($dh)) !== false)		{			if ($file == '.'  ||  $file == '..')			{				continue;			}			if (is_dir($dir . $file))			{				$hasDir = true;				array_push($stack, $dir . $file . '/');			}			else if (is_file($dir . $file))			{				unlink($dir . $file);			}		}		closedir($dh);		if ($hasDir == false)		{			array_pop($stack);			rmdir($dir);		}	}	return true;}	?>

A pesquisa sql pode estar com erro... adapte ao seu banco

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.