Estou com problema em atualizar um registro no banco de dados, segue o code:
Código (PHP):
Este code é o mesmo usado para adicionar registros, eu só modifiquei para que faça o UPDATE neste form.
Vamos ao problema, quando eu atualizo todos os campos, incluindo a foto, tudo funciona normal. Mas quando eu não atualizo a foto, somente os campos de texto, a foto é apagada do registro. Notem que no else onde atualiza quando não tem foto, não tem a coluna foto. E mesmo que eu coloque a coluna usando a imagem atual no $page_imagem, dá o mesmo problema. Alguma ajuda?
Código (PHP):
if ($_POST['atualizar']) {
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$cidade = $_POST['cidade'];
$link = $_POST['link'];
$pega_imagem = $_POST['pega_imagem'];
$id = $_POST['id'];
if ((!$nome) || (!$fone) || (!$cidade) || (!$link)){
echo "<strong style='color: #BC2A4D;'>Por favor, preencha os campos obrigatório.</strong> <br /> <br />";
} else {
// verifica se foi enviado um arquivo
if(isset($_FILES['foto']['name']))
{
$arquivo_tmp = $_FILES['foto']['tmp_name'];
$foto = $_FILES['foto']['name'];
// Pega a extensao
$extensao = strrchr($foto, '.');
// Converte a extensao para mimusculo
$extensao = strtolower($extensao);
// Somente imagens, .jpg;.jpeg;.gif;.png
// Aqui eu enfilero as extesões permitidas e separo por ';'
// Isso server apenas para eu poder pesquisar dentro desta String
if(@strstr('.jpg;.jpeg;.gif;.png', $extensao))
{
// Cria um nome único para esta imagem
// Evita que duplique as imagens no servidor.
$imagem = md5(microtime()) . $extensao;
// Concatena a pasta com o nome
$destino = './images/modelos/' . $imagem;
// tenta mover o arquivo para o destino
if( @move_uploaded_file( $arquivo_tmp, $destino ))
{
echo "";
}
else
echo "<strong style='color: #BC2A4D;'>Erro ao salvar a foto. Aparentemente você não tem permissão de escrita.</strong><br />";
} else
echo "Você poderá enviar apenas arquivos \"*.jpg;*.jpeg;*.gif;*.png\"<br />";
$sql_UPDATE = "UPDATE `modelos` SET `nome` = '".$nome."', `fone` = '".$fone."', `cidade` = '".$cidade."', `link` = '".$link."', `foto` = '".$imagem."' WHERE (`modelo_id` = ".$id.")";
$query = mysql_query($sql_UPDATE, $conn) or die(mysql_error());
if ($sql_UPDATE) {
echo "<strong style='color: #BC2A4D;'>O seu anúncio foi atualizado com sucesso.</strong>";
header("refresh:3;url=modelos.php" );
} else {
echo 'Não foi possível atualizar os dados, tente novamente.';
}
}
else
{
$sql_UPDATE = "UPDATE `modelos` SET `nome` = '".$nome."', `fone` = '".$fone."', `cidade` = '".$cidade."', `link` = '".$link."' WHERE (`modelo_id` = ".$id.")";
$query = mysql_query($sql_UPDATE, $conn) or die(mysql_error());
if ($sql_UPDATE) {
echo "<strong style='color: #BC2A4D;'>O seu anúncio foi atualizado com sucesso.</strong>";
header("refresh:3;url=modelos.php" );
} else {
echo 'Não foi possível atualizar os dados, tente novamente.';
}
}
}
}
$nome = $_POST['nome'];
$fone = $_POST['fone'];
$cidade = $_POST['cidade'];
$link = $_POST['link'];
$pega_imagem = $_POST['pega_imagem'];
$id = $_POST['id'];
if ((!$nome) || (!$fone) || (!$cidade) || (!$link)){
echo "<strong style='color: #BC2A4D;'>Por favor, preencha os campos obrigatório.</strong> <br /> <br />";
} else {
// verifica se foi enviado um arquivo
if(isset($_FILES['foto']['name']))
{
$arquivo_tmp = $_FILES['foto']['tmp_name'];
$foto = $_FILES['foto']['name'];
// Pega a extensao
$extensao = strrchr($foto, '.');
// Converte a extensao para mimusculo
$extensao = strtolower($extensao);
// Somente imagens, .jpg;.jpeg;.gif;.png
// Aqui eu enfilero as extesões permitidas e separo por ';'
// Isso server apenas para eu poder pesquisar dentro desta String
if(@strstr('.jpg;.jpeg;.gif;.png', $extensao))
{
// Cria um nome único para esta imagem
// Evita que duplique as imagens no servidor.
$imagem = md5(microtime()) . $extensao;
// Concatena a pasta com o nome
$destino = './images/modelos/' . $imagem;
// tenta mover o arquivo para o destino
if( @move_uploaded_file( $arquivo_tmp, $destino ))
{
echo "";
}
else
echo "<strong style='color: #BC2A4D;'>Erro ao salvar a foto. Aparentemente você não tem permissão de escrita.</strong><br />";
} else
echo "Você poderá enviar apenas arquivos \"*.jpg;*.jpeg;*.gif;*.png\"<br />";
$sql_UPDATE = "UPDATE `modelos` SET `nome` = '".$nome."', `fone` = '".$fone."', `cidade` = '".$cidade."', `link` = '".$link."', `foto` = '".$imagem."' WHERE (`modelo_id` = ".$id.")";
$query = mysql_query($sql_UPDATE, $conn) or die(mysql_error());
if ($sql_UPDATE) {
echo "<strong style='color: #BC2A4D;'>O seu anúncio foi atualizado com sucesso.</strong>";
header("refresh:3;url=modelos.php" );
} else {
echo 'Não foi possível atualizar os dados, tente novamente.';
}
}
else
{
$sql_UPDATE = "UPDATE `modelos` SET `nome` = '".$nome."', `fone` = '".$fone."', `cidade` = '".$cidade."', `link` = '".$link."' WHERE (`modelo_id` = ".$id.")";
$query = mysql_query($sql_UPDATE, $conn) or die(mysql_error());
if ($sql_UPDATE) {
echo "<strong style='color: #BC2A4D;'>O seu anúncio foi atualizado com sucesso.</strong>";
header("refresh:3;url=modelos.php" );
} else {
echo 'Não foi possível atualizar os dados, tente novamente.';
}
}
}
}
Este code é o mesmo usado para adicionar registros, eu só modifiquei para que faça o UPDATE neste form.
Vamos ao problema, quando eu atualizo todos os campos, incluindo a foto, tudo funciona normal. Mas quando eu não atualizo a foto, somente os campos de texto, a foto é apagada do registro. Notem que no else onde atualiza quando não tem foto, não tem a coluna foto. E mesmo que eu coloque a coluna usando a imagem atual no $page_imagem, dá o mesmo problema. Alguma ajuda?