Ir para conteúdo

POWERED BY:

Arquivado

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

vitinho.vitor

[Resolvido] Editar Registro

Recommended Posts

Olá pessoal, estou fazendo um painel de controle que tem uma página para editar um registro do mysql. Porém ele não está editandp. O que acontece?

envia_edita.php

<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
?>
<?php
$db = mysql_select_db("w18kilatemvet11");
$query = "UPDATE `w18kilatemvet11`.`$tipo` SET 
`nome` = \'$nome \', 
`descricao` = \'$descricao \', 
`cidade` = \'$cidade \', 
`endereço` = \'$endereço \', 
`site` = \'$site \', 
`email` = \'$email \', 
`telefone` = \'$telefone \' WHERE `$tipo`.`nome` = $nome";
mysql_query( $query );
echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";
?>

Sim, tem conexão com o banco, eu tirei para postar.

 

o que acontece?

 

Desde já agradeço

 

Vitor!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na linha :

mysql_query( $query );
mude para

mysql_query( $query ) or die(mysql_error());

E veja se acontece algum erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, deu 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 'nome` = \'teste \', `descricao` = \'teste \', `cidade` = \'teste \', `ende' at line 1

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php

// tua conexao do banco

include("seguranca.php"); // Inclui o arquivo com o sistema de segurança

protegePagina(); // Chama a função que protege a página

 

$Query = mysql_query("

UPDATE w18kilatemvet11 SET

nome = '$nome',

descricao = '$descricao',

cidade = '$cidade',

endereço = '$endereço',

site = '$site',

email = '$email',

telefone = '$telefone'

WHERE

nome ='$nome'

") or die(mysql_error());

 

echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, testei e não funcionou, olha como eu adaptei:

<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
?>
<?php
$host = "*";
$user = "*";
$pass = "*";

$conexao = mysql_connect($host, $user, $pass) OR die ("Erro ao conectar-se");
?>
<?php
$db = mysql_select_db("w18kilatemvet11");
$Query = mysql_query("
UPDATE w18kilatemvet11.acantonamento SET 
nome = '$nome', 
descricao = '$descricao', 
cidade = '$cidade', 
endereço = '$endereço', 
site = '$site', 
email = '$email', 
telefone = '$telefone'
WHERE 
id ='$id'
") or die(mysql_error());

echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";
?>

O que será que acontece?

 

Desde já agradeço

Vitor

Compartilhar este post


Link para o post
Compartilhar em outros sites
  Em 30/06/2010 at 22:36, 'vitinho.vitor' disse:

Olá, testei e não funcionou, olha como eu adaptei:

(...)

O que será que acontece?

 

Desde já agradeço

Vitor

 

Qual a saída do mysql_error()?

Na primeira mensagem de erro que você postou, todas variáveis são nulas. Veja que não foram preenchidas.

Os dados estão sendo enviados por POST? Aonde está o $nome = $_POST['...'], ou qualquer outra declaração dessas variáveis?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, são via POST, agora ele não está mais sainda nenhum erro. Porém ainda não está alterando.

Segue código completo:

<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
?>
<?php
$host = "-";
$user = "-";
$pass = "-";

$conexao = mysql_connect($host, $user, $pass) OR die ("Erro ao conectar-se");
?>
<?php
$nome = $_POST['nome'];
$descricao = $_POST['descricao'];
$cidade = $_POST['cidade'];
$endereço = $_POST['endereço'];
$site = $_POST['site'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$db = mysql_select_db("w18kilatemvet11");
$Query = mysql_query("
UPDATE w18kilatemvet11.acantonamento SET 
nome = '$nome', 
descricao = '$descricao', 
cidade = '$cidade', 
endereço = '$endereço', 
site = '$site', 
email = '$email', 
telefone = '$telefone'
WHERE 
id ='$id'
") or die(mysql_error());

echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";
?>
Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso isso...

 

De onde vem o "$id" ? Acho que não está sendo definido ele, acho que você se esqueceu de pega-lo no banco, ou então através do GET.

veja e tente novamente.

 

E lembre-se, caso reporte algum erro, cole-o aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente acho que a variável não está sendo recebida, então fiz isso abaixo e não acusou nenhum erro mas também não alterou o registro:

<?php
$db = mysql_select_db("w18kilatemvet11");
$query = "UPDATE `w18kilatemvet11`.`$tipo` SET 
`nome` = \'$nome \', 
`descricao` = \'$descricao \', 
`cidade` = \'$cidade \', 
`endereço` = \'$endereço \', 
`site` = \'$site \', 
`email` = \'$email \', 
`telefone` = \'$telefone \' WHERE `$tipo`.`id` = $id UNION SELECT * FROM $tipo WHERE id";
mysql_query( $query );
echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";
?>

Obrigado

Vitor

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema está nas "/".

 

Se você abriu a $query com aspas duplas não há prq colocar o escape "\" nas aspas simples.

 

E esse último código não retornou erro pois você esqueceu de colocar o mysql_error, como o Douglas disse.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então retirei as "\" e testei, o erro foi que o nome da tabela estava incorreta, então retirei as variáveis $tipo, que era o nome da tabela e coloquei o nome de uma direto, Então acusou o seguinte 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 'Ajuda, onde você encontra várias opções de passeio nas melhores praias do sul da' at line 3

 

Segue o código alterado:

<?php
$db = mysql_select_db("w18kilatemvet11");
$query = "UPDATE `w18kilatemvet11`.`camping` SET 
`nome` = '$nome', 
`descricao` = '$descricao', 
`cidade` = '$cidade', 
`endereço` = '$endereço', 
`site` = '$site', 
`email` = '$email', 
`telefone` = '$telefone' WHERE `camping`.`id` = $id UNION SELECT * FROM camping WHERE id";
mysql_query( $query ) or die(mysql_error());
echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";
?>

Obrigado à todos!

 

Vitor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não houver problema, você pode postar aqui a estrutura da sua tabela e o código completo da página?

 

PS: Só pra informar, embora pareça óbvio, essa mensagem é retornada quando há um erro de sintaxe. Por exemplo, aspas colcoadas em lugares errados e tal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema nenhum!

 

Segue:

form_edita.php

<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
?>
<?php
$host = "mysql02.18kilatemvet.com.br";
$user = "w18kilatemvet11";
$pass = "rg504538755";

$conexao = mysql_connect($host, $user, $pass) OR die ("Erro ao conectar-se");
?>
<html><head>
<?php
echo "<title>Camping - ".$nome."</title>";
?>
</head>
<body>
<?php
$db = mysql_select_db("w18kilatemvet11");
$sql = mysql_query("SELECT * 
FROM  `$tipo` 
WHERE  `nome` = CONVERT( _utf8 '$nome'
USING latin1 ) 
COLLATE latin1_general_ci
");

$cont = mysql_num_rows($sql);





while ($row = mysql_fetch_array($sql)) 
{
echo "<form action='envia_edita.php' method='post'><table align='center' border='0'><br>";
echo "<tr><td><b><center><font face='arial' color='forestGreen' size='3'>Nome:<br><input type='text' size='50' name='nome' value='".$row['nome']."'></td></tr><br><br></b></font>";
echo "<tr><td><font face='arial' color='forestGreen' size='3'><b>Descrição:</b><br><textarea cols='40' rows='15' name='descricao'>".$row['descricao']."</textarea></td></tr>";
echo "<tr><td><font face='arial' color='forestGreen' size='3'><b>Cidade:</b><br><input type='text' size='50' name='cidade' value='".$row['cidade']."'></td></tr>";
echo "<tr><td><font face='arial' color='forestGreen' size='3'><b>Endereço:</b><br><input type='text' size='50' name='endereço' value='".$row['endereço']."'></td></tr>";
echo "<tr><td><font face='arial' color='forestGreen' size='3'><b>Site:</b><br><input type='text' size='50' name='site' value='".$row['site']."'></td></tr>";
echo "<tr><td><font face='arial' color='forestGreen' size='3'><b>E-Mail:</b><br><input type='text' size='50' name='email' value='".$row['email']."'></td></tr>";
echo "<tr><td><font face='arial' color='forestGreen' size='3'><b>Telefone:</b><br><input type='text' name='telefone' size='50' value='".$row['telefone']."'></td></tr>";
echo "<input type='submit' value='Atualizar'></form>";
}

?>
<br><br><center>
</body>
</html>
e o

envia_edita.php

<?php
include("seguranca.php"); // Inclui o arquivo com o sistema de segurança
protegePagina(); // Chama a função que protege a página
?>
<?php
$host = "-";
$user = "-";
$pass = "-";

$conexao = mysql_connect($host, $user, $pass) OR die ("Erro ao conectar-se");
?>

<?php
$db = mysql_select_db("w18kilatemvet11");
$query = "UPDATE `w18kilatemvet11`.`camping` SET 
`nome` = '$nome', 
`descricao` = '$descricao', 
`cidade` = '$cidade', 
`endereço` = '$endereço', 
`site` = '$site', 
`email` = '$email', 
`telefone` = '$telefone' WHERE `camping`.`id` = $id UNION SELECT * FROM camping WHERE id";
mysql_query( $query ) or die(mysql_error());
echo "<center><font face='arial' color='forestGreen' size='5'>Feito!<br><a href='home.php' style='text-decoration:none'>Voltar</a>";
?>

Acusou 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 'UNION SELECT * FROM camping WHERE id' at line 8

 

Obrigado

Vitor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, eu resgatei o ID do registro no formulário e então agora ele está recebendo algo, Porém agora está acusando 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 'Ajuda, onde você encontra várias opções de passeio nas melhores praias do sul da' at line 3

 

O que será??

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma coisa que eu sempre costumo fazer:

Dê um echo na consulta ($query) para verificar como é que a consulta vai para o banco.

 

Talvez na consulta haja algum caractere especial, pois ele dá erro na descrição.

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.