Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi,
estou acabando um sistema de organização de fotos, e me deparei com o seguinte problema....
A organização de fotos é feita com pastas. Cada foto tem suas informações no banco de dados, como nome, descrição, diretório (onde o arquivo se encontra) e o nome do arquivo... quando o nome de alguma pasta é alterada, eu preciso alterar as informações do banco de dados, além de mudar o nome da pasta...
Ex.:
>
Os arquivos
carros/antigos/fusca.jpg
carros/novos/ferrari.jpg
O banco de dados
Nome | Diretorio | Arquivo
Fusca | carros/antigos/ | fusca.jpg
Ferrari | carros/novos/ | ferrari.jpg
Se eu renomeio a pasta "carros" para "veiculos", teria que ficar assim:
>
Os arquivos
veiculos/antigos/fusca.jpg
veiculos/novos/ferrari.jpg
O banco de dados
Nome | Diretorio | Arquivo
Fusca | veiculos/antigos/ | fusca.jpg
Ferrari | veiculos/novos/ | ferrari.jpg
Mas como eu faço para atualizar o banco de dados corretamente, para que "carros/novos/" se transforme em "veiculos/novos"?
se esse fosse o problema eu nem tinha postado aqui né! =)Acontece que podem existir muitas pastas dentro de /carros/ ou de /novos/
/carros/novos/fiat/linha-2005/carros/novos/fiat/linha-2004/carros/novos/volkswargen//carros/novos/pegeout/
Então, na hora de atualizar, teria que atualizar todos esses por
/veiculos/novos/fiat/linha-2005/veiculos/novos/fiat/linha-2004/veiculos/novos/volkswargen//veiculos/novos/pegeout/
Se eu atualizar somente a pasta que foi editada, as fotos que estão dentro das pastas dessa pasta não vão funcionar.Como fazer para atualizar TODAS as pastas que "dependem" da pasta editada?
Tendo:
$dir_antigo = "carros";$dir_novo = "veiculos";
E a query fica assim:
UPDATE tabela SET diretorio = REPLACE(diretorio, '/$dir_antigo', '/$dir_novo') WHERE diretorio REGEXP '/$dir_antigo/?'
Veja como fica agora.
[]'s
nao funcionou...
Tendo em "mãos" as variáveis:
$dir_antigo = "carros/novos/";$dir_novo = "veiculos/novos/";
Você poderá modificar em todos os registros que contém o valor antigo como diretório pelo novo diretório.
Veja a query:
UPDATE tabela SET diretorio = '$dir_novo' WHERE diretorio = '$dir_antigo'
[]'s