L3¢k0 0 Denunciar post Postado Janeiro 10, 2006 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
Senshi 0 Denunciar post Postado Janeiro 10, 2006 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
L3¢k0 0 Denunciar post Postado Janeiro 10, 2006 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
Senshi 0 Denunciar post Postado Janeiro 10, 2006 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
L3¢k0 0 Denunciar post Postado Janeiro 10, 2006 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
Senshi 0 Denunciar post Postado Janeiro 10, 2006 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