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á cadastradoforeach($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();}
Pergunta
Wilson Carlos de Sousa
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:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.