Ir para conteúdo
Fórum Script Brasil

Wilson Carlos de Sousa

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Wilson Carlos de Sousa

Wilson Carlos de Sousa's Achievements

0

Reputação

  1. Tenho um sistema de gerenciamento de conteúdo que utilizo no meu site de loja de carros, tem 3 tabelas que são dependentes, Loja, Carros e Carrosfotos. Quando cadastro uma Loja, adiciono um Carro e várias fotos desse carro, tudo em suas tabelas correspondentes, porém notei que o sistema não estava excluindo os registros em cascata, estavam ficando muito arquivos órfãos, ou seja, quando excluísse a loja, era pra excluir todos os carros daquela loja e todas as fotos dos carros, sendo assim fiquei com muito espaço perdido no servidor, então preciso excluir essas fotos. Pesquisei em alguns fóruns e não achei nada completo, somente fragmentos do que queria, então fui juntando as coisas e gostaria da opinião de vocês onde posso melhorar ou se estou fazendo de forma errada, segue o código: try{ //Caminho para pasta $path = "upload/imagens/carros/"; $diretorio = dir($path); //Faço uma leitura em toda pasta e adiciono cada arquivo no array $arquivos = array(); while ($file = $diretorio->read()) { if ($file != "." && $file != "..") { array_push($arquivos, $file); } } //Conexão com BD $conn = new PDO('mysql:host=localhost;dbname=minhaloja', 'user', 'senha'); //Seleciono todos os registros $stmt = $conn->prepare('SELECT `imagem` FROM `carrosfotos`'); $stmt->execute(array()); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); //Percorro o array e comparo com o BD se o arquivo encontrado está cadastrado foreach ($arquivos as $foto){ if (in_array($foto, array_column($result, 'imagem'))) { echo '<pre>'; echo 'A imagem'.$foto.' está cadastrada.'; echo '</pre>'; } else { unlink($path . $foto); } } } catch (PDOException $e) { echo 'ERRO: ' . $e->getMessage(); $diretorio->close(); }
×
×
  • Criar Novo...