Ir para conteúdo

POWERED BY:

Arquivado

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

perdiga

Consultando nomes no BD para deletar arquivos

Recommended Posts

Olá pessoal!

 

Preciso alterar um site que não possibilita a exclusão dos anúncios publicados. Com isso, deverei ler no banco os nomes das imagens para deletar os arquivos e depois o registro da base.

Quem pode me ajudar nessa missão?

 

Os arquivos são mencionados na base da seguinte maneira: ["4840262155_aa1fc6b90a_b.jpg","4427351723_c93cc51063_b.jpg"]

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal!

 

Preciso alterar um site que não possibilita a exclusão dos anúncios publicados. Com isso, deverei ler no banco os nomes das imagens para deletar os arquivos e depois o registro da base.

Quem pode me ajudar nessa missão?

 

Os arquivos são mencionados na base da seguinte maneira: ["4840262155_aa1fc6b90a_b.jpg","4427351723_c93cc51063_b.jpg"]

 

Obrigado!

 

Como não sabia as colunas de sua tabela criei fictícias.

/*
 * é só um modelo
 * isso é PHP estruturado
 */

$pasta = "raiz/imagens/";

while ($mfo = mysql_fetch_object($resultados)) {
    if (unlink($pasta . $mfo->nome_da_imagem)) {
        //caso delete vai apagar o registro
        $delete_db = mysql_query("DELETE tabela WHERE id_da_imagem = '" . $mfo->id_da_imagem . "'") or die(mysql_error());
        
        if ($delete_db) {
            echo 'A imagem foi deletada e seu registro apagado';
        } else {
            echo 'Não foi possível deletar o registro do banco de dados.';
        }
    } else {
       //caso não delete informe aqui
        echo 'Ocorreu um erro ao deletar o arquivo: ' . $mfo->nome_da_imagem;
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É de suma importância fazer a verificação de existência para o arquivo antes de deletá-lo. Você pode utilizar a função

file_exists();

onde tem:

$mfo->nome_da_imagem

Na verdade é o nome do CAMPO na tabela MySQL onde se encontra o "nome" da imagem, já que no exemplo você setou a pasta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

["4840262155_aa1fc6b90a_b.jpg","4427351723_c93cc51063_b.jpg"]

os nomes estao assim tudo no mesmo campo?

sao 2 imagens para cada registro?

 

use o codigo que o ventao passou, mas modifique para ele tratar arrrays em $mfo->nome_da_imagem (json_decode($mfo->nome_da_imagem))

depois use foreach

Compartilhar este post


Link para o post
Compartilhar em outros sites

["4840262155_aa1fc6b90a_b.jpg","4427351723_c93cc51063_b.jpg"]

os nomes estao assim tudo no mesmo campo?

sao 2 imagens para cada registro?

 

use o codigo que o ventao passou, mas modifique para ele tratar arrrays em $mfo->nome_da_imagem (json_decode($mfo->nome_da_imagem))

depois use foreach

 

Sim, o campo da tabela possui nome dos n arquivos relacionados ao registro que desejo excluir da base.
Na verdade eu preciso fazer um botão que execute esta ação. Ou seja, ainda terei que saber a qual o registro (anúncio) o botão pertence para excluir o item correto.

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.