Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá pessoal, é o seguinte
eu tenho um formulári que é por onde cadastro as informações no meu banco de dados dai me surgiu a necessidade de alterar esses dados, porem na hora de fazer o update dá erro alguem pode me ajudar.
esse é o formulário que recebe os dados do banco para serem atualizados.
<?php
$conexao = mysql_connect("host","user","pass");
$db = mysql_select_db("bd");
$sql = "SELECT * FROM coluna_esquerda_1 WHERE id='$id'";
$resultado = mysql_query($sql)
or die
("Não foi possível realizar a consulta ao banco de dados");
while ($linha=mysql_fetch_array($resultado))
{
$id = $linha["id"];
$tabela = $linha["tabela"];
$categoria = $linha["categoria"];
$publicado = $linha["publicado"];
$titulo = $linha["titulo"];
$subtitulo = $linha["subtitulo"];
$data = $linha["data"];
$hora = $linha["hora"];
$autor = $linha["autor"];
$foto = $linha["foto"];
$comentario = $linha["comentario"];
$noticia = $linha["noticia"];
$novadata = substr($data,8,2) . "/" .substr($data,5,2) . "/" . substr($data,0,4);
$novahora = substr($hora,0,2) . "h" .substr($hora,3,2) . "min";
echo "<form action='atualizar.php' method='post' enctype='multipart/form-data' name='cadastro' >";
echo " <div class='form_description'>
";
echo "Data: $novadata<br>";
echo "Hora: $novahora<br>";
echo "Tabela:<br />";
echo "<input name='tabela_novo' type='text' value='$tabela' size=130><br />";
echo "Categoria:<br />";
echo "<input name='categoria_novo' type='text' value='$categoria' size=130><br />";
echo "Publicado:<br />";
echo "<input name='publicado_novo' type='text' value='$publicado' size=130><br />";
echo "Titulo:<br />";
echo "<input name='titulo_novo' type='text' value='$titulo' size=130><br />";
echo "Subtitulo:<br />";
echo "<input name='subtitulo_novo' type='text' value='$subtitulo' size=130><br />";
echo "Autor:<br />";
echo "<input name='autor_novo' type='text' value='$autor' size=130><br />";
echo "Foto de exibição:<br />";
echo "<input name='foto_novo' type='text' value='$foto' size=130><br />";
echo "Legenda:<br />";
echo "<input name='comentario_novo' type='text' value='$comentario' size=130><br />";
echo "Notícia:<br />";
echo "<textarea name='noticia_novo' rows=25 cols=100>$noticia</textarea><br />";
echo "<input type='submit' name='cadastrar' value='Cadastrar' />";
echo "</table>";
echo "</form>";
}
?>
e aqui o arquivo responsavel por alterar os dados e é onde tenho problemas.
<?php
mysql_connect("host","user","pass") or die (mysql_error ());
mysql_select_db("bd") or die(mysql_error());
$editar = mysql_query("update coluna_esquerda_1 set
id='$id_novo',
tabela='$tabela_novo',
categoria='$categoria_novo',
publicado='$publicado_novo',
data='$data_novo',
hora='$hora_novo',
titulo='$titulo_novo',
subtitulo='$subtitulo_novo',
autor='$autor_novo',
foto='$foto_novo',
comentario='$comentario_novo',
noticia='$noticia_novo'
WHERE $id='$id' ") or die(mysql_error());
?>
então o que será que tá errado nesse arquivo. desde já agradeço a ajuda de vcs.
ue parece tudo normal, posta o erro ai
simples, seu arquivo com o update nao esta recebendo os dados do form...só tem variáveis q nao foram inicializadas....coloque o update na pagina do form...
>
simples, seu arquivo com o update nao esta recebendo os dados do form...só tem variáveis q nao foram inicializadas....coloque o update na pagina do form...
Olha o erro que aparece é esse
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=''' at line 27
mas como faço que jeito que você falou? como colocar o update na página do form?
Desde já agradeço
>
mas como faço que jeito que você falou? como colocar o update na página do form?
Desde já agradeço
copiando e colando de uma pagina a outra
>
Olha o erro que aparece é esse
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=''' at line 27
Desde já agradeço
imprima sua sql e jogue no phpmyadmin pra ver onde esta o erro...ou useo o or die(mysql_error()) depois de mysql_query...
>
copiando e colando de uma pagina a outra
imprima sua sql e jogue no phpmyadmin pra ver onde esta o erro...ou useo o or die(mysql_error()) depois de mysql_query...
cara desculpa mais não ficou claro pra mim, sou novo em php e minha única fonte de estudo é a net. teria como você fazer ai no meu código pra q eu veja como é.
Muito obrigado por estar me ajudando.
desculpe, mas nao posso fazer por você, so posso indicar a luz...se esta aprendendo, ae sim eh você q tem q fazer....
>
desculpe, mas nao posso fazer por você, so posso indicar a luz...se esta aprendendo, ae sim eh você q tem q fazer....
Ok você também não sabe né. mas mesmo assim vlw. Bom se tem alguem ai que possa me ajudar, a fazer um update num registro do meu bd eu agradeço muito.
>
Ok você também não sabe né. mas mesmo assim vlw. Bom se tem alguem ai que possa me ajudar, a fazer um update num registro do meu bd eu agradeço muito.
como eu nao sei, se postei a solucao? ta na cara, o arquivo q recebe os dados eh o do form, e la nao tem nada pra update, e sim o outro arquivo, q nao recebe os dados...eu nao posso fazer por você, so posso indicar o caminho, se eu for fazer na mao, o q cada um pede, terei q cobrar...>
como eu nao sei, se postei a solucao? ta na cara, o arquivo q recebe os dados eh o do form, e la nao tem nada pra update, e sim o outro arquivo, q nao recebe os dados...eu nao posso fazer por você, so posso indicar o caminho, se eu for fazer na mao, o q cada um pede, terei q cobrar...
Bom acho q agora você clareou um pouco mais. Bem veja se minha lógica esta errada.
O arquivo form recebe os dados do banco que serão atualizados. depois ao clicar em cadastrar os dados são enviados para o arquivo atualizar.php que será responsável por atualiza os dados. mas a questão é que ele não atualiza e mostra esse erro.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=''' at line 27
O que não entendi é onde errei. se o forme recebe o bd e joga pra fazer o update, só que ele não grava os dados.
ok, vamos la, tb pecço desculpas, mas veja bem, eu disse a mesma cois de 2 maneiras diferente
você fez isto
id='$id_novo',
tabela='$tabela_novo',
categoria='$categoria_novo',, mas da onde ven estas variaveis?
coloca algo como
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
mysql_query ....update ....
id='{$_POST[id_novo'}',
tabela='{$_POST['tabela_novo'}',
.....
vai postando as modificacoes, caso as faça e de errado...
>
ok, vamos la, tb pecço desculpas, mas veja bem, eu disse a mesma cois de 2 maneiras diferente
você fez isto
id='$id_novo',
tabela='$tabela_novo',
categoria='$categoria_novo',, mas da onde ven estas variaveis?
coloca algo como
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
mysql_query ....update ....
id='{$_POST[id_novo'}',
tabela='{$_POST['tabela_novo'}',
.....
vai postando as modificacoes, caso as faça e de errado...
Olá bom dia. olha desculpa a demora de responder o tópico, é q eu tava um pouco atolado com trabalho.
Emfim, tentei fazer um update é um formulário mais básico, pra ficar mais fácil já que to começando em php e deu certo. Fiz da seguinte maneira.
Aqui o formulário que resgata os valores do banco
<?php
$conexao = mysql_connect("host","usuario","senha");
$db = mysql_select_db("bd");
$sql = "SELECT * FROM tb_usuarios WHERE id_usuario='$id_usuario'";
$resultado = mysql_query($sql)
or die (mysql_error ());
while ($linha=mysql_fetch_array($resultado))
{
$id_usuario = $linha["id_usuario"];
$nome_usuario = $linha["nome_usuario"];
$email = $linha["email"];
$usuario = $linha["usuario"];
$senha = $linha["senha"];
$senha2 = $linha["senha2"];
echo "<form action='atualizar_usuario.php' method='post' enctype='multipart/form-data' name='cadastro' >";
echo "ID do registro:<br />";
echo "<input name='id_usuario_novo' type='text' value='$id_usuario' size=130><br />";
echo "Seu Nome:<br />";
echo "<input name='nome_usuario_novo' type='text' value='$nome_usuario' size=130><br />";
echo "Email:<br />";
echo "<input name='email_novo' type='text' value='$email' size=130><br />";
echo "Usuário:<br />";
echo "<input name='usuario_novo' type='text' value='$usuario' size=130><br />";
echo "Senha:<br />";
echo "<input name='senha_novo' type='password' id='senha_novo' value='$senha' size=130 /><br />";
echo "Confirmar Senha:<br />";
echo "<input name='senha2_novo' type='password' id='senha2_novo' value='$senha2' size=130 /><br />";
echo "<input type='submit' name='cadastrar' value='Cadastrar' />";
echo "</form>";
}
?>
Aqui o arquivo que atualiza os valores do banco
<?php
//chama o arquivo de conexão com o bd
include('Connections/inserir.php');
$id_usuario = 'id_usuario';
$nome_usuario = 'nome_usuario';
$email = 'email';
$usuario = 'usuario';
$senha = 'senha';
$senha2 = 'senha2';
//consulta sql - update
$query = mysql_query("UPDATE tb_usuarios SET nome_usuario='$nome_usuario_novo', email='$email_novo', usuario='$usuario_novo', senha='$senha_novo', senha2='$senha2_novo' WHERE id_usuario='$id_usuario_novo' ") or die(mysql_error());
// Se os dados forem inseridos com sucesso
if ($query){
echo "As alterações foram realizadas com sucesso!";
}
//fecha a conexão com o banco
mysql_close($conn);
?>
Bom tá funcionando perfeitamente. mas acho que a grande questão é que teria que ter um campo foto. E para atualizar a foto como seria. Pergunto porque, na hora de cadstrar no banco tem um código que faz o upload da imagem para uma pasta e no banco ele grava o caminho onde a imagem está. mas na hora de atualizar como ele faria o upload??
>
Aqui o arquivo que atualiza os valores do banco
<?php
//chama o arquivo de conexão com o bd
include('Connections/inserir.php');
$id_usuario = 'id_usuario';
$nome_usuario = 'nome_usuario';
$email = 'email';
$usuario = 'usuario';
$senha = 'senha';
$senha2 = 'senha2';
//consulta sql - update
$query = mysql_query("UPDATE tb_usuarios SET nome_usuario='$nome_usuario_novo', email='$email_novo', usuario='$usuario_novo', senha='$senha_novo', senha2='$senha2_novo' WHERE id_usuario='$id_usuario_novo' ") or die(mysql_error());
// Se os dados forem inseridos com sucesso
if ($query){
echo "As alterações foram realizadas com sucesso!";
}
//fecha a conexão com o banco
mysql_close($conn);
?>
Bom tá funcionando perfeitamente. mas acho que a grande questão é que teria que ter um campo foto. E para atualizar a foto como seria. Pergunto porque, na hora de cadstrar no banco tem um código que faz o upload da imagem para uma pasta e no banco ele grava o caminho onde a imagem está. mas na hora de atualizar como ele faria o upload??
neste ultimo arquivo eh q tem q ter o $id_usuario = $_POST['id_usuario'];....////para pegar os dados do formulario...
>
neste ultimo arquivo eh q tem q ter o $id_usuario = $_POST['id_usuario'];....////para pegar os dados do formulario...
Mas já tem. Não seria esta parte.
WHERE id_usuario='$id_usuario_novo' "). Mas tipo, não entendi como funcionará a foto
EX: para castra-lá do banco uso isto.
<?php include("Connections/inserir.php");
// Se o usuário clicou no botão cadastrar efetua as ações
if ($_POST['cadastrar']) {
// Recupera os dados dos campos
$tabela = $_POST['tabela'];
$categoria = $_POST['categoria'];
$publicado = $_POST['publicado'];
$data = date ('Y-m-d');
$hora = strftime ("%H:%M:%S");
$titulo = $_POST['titulo'];
$subtitulo = $_POST['subtitulo'];
$autor = $_POST['autor'];
$foto = $_FILES["foto"];
$comentario = $_POST['comentario'];
$noticia = $_POST['noticia'];
[b]// Se a foto estiver sido selecionada
if (!empty($foto["name"])) {
// Largura máxima em pixels
$largura = 5000;
// Altura máxima em pixels
$altura = 5000;
// Tamanho máximo do arquivo em bytes
$tamanho = 10000000000;
// Verifica se o arquivo é uma imagem
if(! preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp|PNG)$/i", $foto["type"])){
$error[1] = "Isso não é uma imagem.";
}
// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);
// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}
// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}
// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($foto["size"] > $tamanho) {
$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}
// Se não houver nenhum erro
if (count($error) == 0) {
// Pega extensão da imagem
preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);
// Gera um nome único para a imagem
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
// Caminho de onde ficará a imagem
$caminho_imagem = "fotos/" . $nome_imagem;
// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);[/b]
$tabela = mysql_escape_string($tabela);
$categoria = mysql_escape_string($categoria);
$publicado = mysql_escape_string($publicado);
$data = mysql_escape_string($data);
$hora = mysql_escape_string($hora);
$titulo = mysql_escape_string($titulo);
$subtitulo = mysql_escape_string($subtitulo);
$autor = mysql_escape_string($autor);
$nome_imagem = mysql_escape_string($nome_imagem);
$comentario = mysql_escape_string($comentario);
$noticia = mysql_escape_string($noticia);
// Insere os dados no banco
$sql = mysql_query("INSERT INTO $tabela VALUES ('', '".$tabela."', '".$categoria."', '".$publicado."', '".$data."', '".$hora."', '".$titulo."', '".$subtitulo."', '".$autor."', '".$nome_imagem."', '".$comentario."', '".$noticia."')");
// Se os dados forem inseridos com sucesso
if ($sql){
echo "A notícia foi cadastrada com sucesso!";
}
}
// Se houver mensagens de erro, exibe-as
if (count($error) != 0) {
foreach ($error as $erro) {
echo $erro . "<br />";
}
}
}
}
?>
A parte em negrito é responsável por fazer upload da imagem. Ela grava a imagem na pasta e guarda o caminho no bd. Mas no update como vou usar o upload da imagem para atualizar.>
Mas no update como vou usar o upload da imagem para atualizar.
se isto for uma pergunta, você faz normalmente o update, se o campo tiver um valor diferente do q esta no banco, o campo eh atualizado...>
se isto for uma pergunta, você faz normalmente o update, se o campo tiver um valor diferente do q esta no banco, o campo eh atualizado...
tentei fazer o update utilizando imagem, Mas ele só gravou no banco o caminho onde a foto está no meu pc. olha:
C:UsersspcomunicacaoAppDataLocalTempphp6AE8.tmp
só gravou isso. E na pasta a imagem anterior continua, e nenhuma outra foi para a pasta.
Fiz da sequinte maneira.
<?php
// Conexão com o banco de dados
$conn = @mysql_connect("host", "user", "senha") or die ("Problemas na conexão.");
$db = @mysql_select_db("spcomunicacao", $conn) or die ("Problemas na conexão");
$id = 'id';
$nome = 'nome';
$email = 'email';
$login = 'login';
$foto = 'foto';
$senha = 'senha';
$senha2 = 'senha2';
//consulta sql - update
$query = mysql_query("UPDATE usuarios SET nome='$nome_novo', email='$email_novo', login='$login_novo', foto='$foto_novo', senha='$senha_novo', senha2='$senha2_novo' WHERE id='$id_novo' ") or die(mysql_error());
// Se os dados forem inseridos com sucesso
if ($query){
echo "As alterações foram realizadas com sucesso!";
}
//fecha a conexão com o banco
mysql_close($conn);
?>
será que tem q utilizar algum código para fazer **upload, update e substituição** da foto?
Agradeço a ajuda quem tem dado.
Opa Ualace Moura!!
Vi sua dúvida acima e estou enfrentando o MESMO problema, não consigo de jeito nenhum atualizar a imagem no banco de dados. Consigo atualizar todos os campos normalmente, porém a imagem não consigo de maneira nenhuma!
Vi que parece qe seu problema foi solucionado, pode me ajudar?
Obrigado!
Que erro está dando?