Ir para conteúdo

POWERED BY:

Arquivado

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

Ualace Moura

Como atualizar dados do mysql

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

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??

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

 

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

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.