Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
olá estou usando este código para fazer um UPDATE no meu Mysql.
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$Chave = $_POST["Chave"];
$Edicao = $_POST["Edicao"];
$Titulo = $_POST["Titulo"];
$Texto = $_POST["Texto"];
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
Abre_Conexao();
if(@mysql_query("UPDATE materias SET Edicao='$Edicao', Titulo='$Titulo', Texto='$Texto' WHERE Chave='$Chave'")) {
if(mysql_affected_rows() == 1){
echo "Registro atualizado com sucesso";
}
} else {
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
@mysql_close();
}
}
?>
<a href="listar.php">Voltar</a>depois que clico no botão de editar ele não mostra nenhuma mensagem nem de erro e nem de registro atualizado e também não atualiza os dados.não consigo encontrar onde está o problema. alguém pode me ajudar.Bem. Eu até fiz questão de utilizar o código do amigo para fazer um teste (claro...utilizando uma tabela qualquer) e não retornou erro algum. Confere se a conexao está correta ou se os atributos $_POST estão chegando corretamente.
oi William.
fiz como você disse e continuou como estava. não atualiza os dados.
<?php
if($_SERVER["REQUEST_METHOD"] == "POST") {
$Chave = $_POST["Chave"];
$Edicao = $_POST["Edicao"];
$Titulo = $_POST["Titulo"];
$Texto = $_POST["Texto"];
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
Abre_Conexao();
$update = mysql_query("UPDATE materias SET Edicao='$Edicao', Titulo='$Titulo', Texto='$Texto' WHERE Chave='$Chave'")or die( mysql_error() );if( $update ) {
if(mysql_affected_rows() == 1){
echo "Registro atualizado com sucesso";
}
} else {
if(mysql_errno() == 1062) {
echo $erros[mysql_errno()];
exit;
} else {
echo "Erro nao foi possivel efetuar a edição";
exit;
}
@mysql_close();
}
}
?>
<a href="listar.php">Voltar</a>Tá, mas aparece algum erro? ou não ?
Adiciona o seguinte:
}
else
echo 'Não veio nenhum POST';
?>
<a href="listar.php">Voltar</a>como está o formulário disso?
oque eu disse 'não ia resolver', mas ia tentar mostrar o pq de não ter dado certo.
não mostra erro algum. o formulário está assim:
<? include("topo.php"); ?>
<?php
if(file_exists("init.php")) {
require "init.php";
} else {
echo "Arquivo init.php nao foi encontrado";
exit;
}
if(!function_exists("Abre_Conexao")) {
echo "Erro o arquivo init.php foi auterado, nao existe a função Abre_Conexao";
exit;
}
$Chave = $_GET["Chave"];
Abre_Conexao();
$re = mysql_query("select count(*) as total from materias where Chave = $Chave");
$total = mysql_result($re, 0, "total");
if($total == 1) {
$re = mysql_query("select * FROM materias WHERE Chave ORDER BY Chave DESC");
$dados = mysql_fetch_array($re);
}
?>
<form id="form1" name="form1" method="post" action="salvar_edicao.php">
<input type="hidden" id="Chave" value="<?php echo $Chave; ?>" />
<table width="400" border="0" cellpadding="6" cellspacing="0">
<tr>
<td width="145">Edição:</td>
<td width="245"><input name="Edicao" type="text" id="Edicao" value="<?php echo $dados["Edicao"]; ?>" size="40" /></td>
</tr>
<tr>
<td>Título:</td>
<td><input name="Titulo" type="text" id="Titulo" value="<?php echo $dados["Titulo"]; ?>" size="40" /></td>
</tr>
<tr>
<td>Texto:</td>
<td><textarea name="Texto" rows="8" id="Texto"><?php echo $dados["Texto"]; ?></textarea></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Salvar" style="cursor:pointer;" /></td>
</tr>
</table>
</form>
<? include("rodape.php"); ?>obrigado William pela ajuda.O primeiro arquivo que você postou se chama: salvar_edicao.php
e está no mesmo nivel de pastas do formulário ?
corrija:
<input type="hidden" id="Chave" value="<?php echo $Chave; ?>" /> para:
<input type="hidden" name="Chave" id="Chave" value="<?php echo $Chave; ?>" />
Essas linhas aqui:
error_reporting( E_ALL | E_STRICT );
ini_set('display_errors', TRUE); existem no teu init.php ?se não existir ainda, coloque elas lá.
valeu William. funcionou agora perfeitamente.
muito obrigado mesmo pela seu empenho em me ajudar.
esse é o melhor Forum que existe.
obrigado novamente.
Evite usar supressores de erro!
troque: