Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal.
Tenho um problema que é o seguinte, tenho um cadastro de arquivos para o "servidor"(localhost), o endereço da pasta onde o arquivo é salvo, justamente com o nome do arquivo é armazenado no banco de dados. O cadastro está funcionando. O problema está quando eu efetuo uma alteração no nome da categoria, pois quando eu altero o nome dela, ele tem que alterar o nome da pasta e também mudar lá no banco de dados em cada registro que no caminho do arquivo tenha o nome daquela pasta que foi alterada. Atualmente meu código está assim:
<div id="formulario-cadastro">
<?php
$id = $_SESSION['id-categoria'];
$SQL = mysql_query("SELECT * FROM categorias WHERE id=$id");
$listar = mysql_fetch_array($SQL);
$pasta_antiga = "C:/Users/Dionei/Dropbox/".$listar['nome'];
$pasta_antiga2 = "C:/Users/Dionei/Documents/Arquivos/".$listar['nome'];
?>
<label>
<span>NOME DA CATEGORIA</span>
<input name="titulo" type="text" id="titulo" value="<?php echo $listar['nome'];?>" />
<input type="hidden" name="titulo_antigo" value="<?php echo $listar['nome'];?>" />
</label>
<label>
<span>IMAGEM</span>
<input name="file_original" type="file" id="file_original" size="653" onchange="document.getElementById('file_falso').value = this.value;" value="<?php echo $listar['imagem'];?>" />
<input name="file_falso" type="text" id="file_falso" class="fake" value="" />
<input type="button" name="upload" value="Pesquisar" class="btn"/>
</label>
</div>
<input type="hidden" name="alterar" value="ok" />
</form>
</div>
<?php
if(isset($_POST['alterar']) && $_POST['alterar'] == "ok"){
if ($_POST['titulo'] == ''){
echo '<script type="text/javascript">alert("Você deve especificar o nome da categoria!");history.go(-1);</script>';
}else{
$nome_categoria = $_POST['titulo'];
$imagem_categoria = $_FILES['file_original']['tmp_name'];
$nome_antigo = $_FILES['file_original']['name'];
$extensoes = array('jpg','jpeg','png','gif');
$extensao = strtolower(end(explode('.',$nome_antigo)));
$pasta = 'imagens/icones_categorias/';
$titulo_antigo = $_POST['titulo_antigo'];
}
if (move_uploaded_file($imagem_categoria,$nome_final)){
$alterar = mysql_query("UPDATE categorias SET nome='$nome_categoria', imagem='$nome_final' WHERE id='$id'");
$SQLalteraarquivo = mysql_query("SELECT * FROM arquivos WHERE arquivo LIKE '%$titulo_antigo%'");
while ($lista_arquivo = mysql_fetch_assoc($SQLalteraarquivo)){
$nome_arquivo = $lista_arquivo['arquivo'];
$id_arquivo = $lista_arquivo['id'];
$titulo_alterado = str_replace($titulo_antigo,$nome_categoria,$nome_arquivo);
$SQLalteraarquivo = mysql_query("UPDATE arquivos SET arquivo='$titulo_alterado' WHERE id='$id_arquivo'");
}
}
?>
Só coloquei o a parte do códig que pode gerar o erro. Só que ele altera somente o nome de somente um registro do banco de dados, deixando os outros da maneira em que estão. ALguém poderia me ajudar? Muito Obrigado.
Carregando comentários...