Ir para conteúdo

POWERED BY:

Arquivado

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

fabianojp06

Atualização de cadastro não funciona em PHP

Recommended Posts

Amigos,

 

Tenho um sitema, onde na primeira página (index.php) faço a busca por um cadastro, esta busca é baseada no ID. Após é aberta a página (controle.php) com o ID e nome, ao clicar no botão "alterar" sou redirecionado para a página (alterar.php) onde realizo as alterações necessárias, e quando clico no botão "alterar", o botão é direcionado para a página (alterar_db) onde é rodada a query para atualizar o cadastro. Mas não atualiza nada, por favlor, alguém que possa me ajudar neste questão?

Abaixo seguem os códigos que estou usando.

 

index.php

 

<html>
<form method="POST" action="controle.php" name="funcionarios">
Numero: <input type="text" name="palavra"/>
<input type="text" name="mensagem">
<input type="submit" value="Buscar"/>
</form>
</html>
=================================================
controle.php
<HTML>
<HEAD>
<TITLE>Atualização RIWASA</TITLE>
</HEAD>
<BODY>
<?php
$conexao = mysql_connect("localhost","root","");
$db = mysql_select_db("noticias");
$palavra = $_POST['palavra'];
$sql= ("select id, nome from noticias where id = ".$palavra." ");
$resultado = mysql_query($sql);
echo "<table width=740 border=1 cellpadding=10 cellspacing=2>";
echo "<tr>";
echo "<th width=15>ID:</th>";
echo "<th width=100>Nome:</th>";
echo "</tr>";
while ($linha=mysql_fetch_array($resultado)) {
$id = $linha["id"];
$nome = $linha["nome"];
echo "<tr>";
echo "<th width=15>$id<br></th>";
echo "<th width=100>$nome<br></th>";
echo "</tr>";
echo "<th width=50><a href='alterar.php?idbusca=$palavra'>Alterar</a><br></th>";
echo "</tr>";
echo "<br>";
}
echo "</table>";
?>
</BODY>
</HTML>
======================================================
alterar.php
<?php
//header("location: alterar_db.php"); //
?>
<HTML>
<HEAD>
<TITLE>Atualização RIWASA</TITLE>
</HEAD>
<BODY>
<?php
$conexao = mysql_connect("localhost","root","");
$db = mysql_select_db("noticias");
$palavra = $_GET['idbusca'];
$sql= ("select id, nome, sobrenome from noticias where id = ".$palavra." ");
$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"];
$nome = $linha["nome"];
echo "<h1>Alterar Cadastro...</h1>";
echo "<hr><br>";
echo "<form action='alterar_db.php?' method='POST'>";
echo "Nome:<input name='nome_novo' type='text' value='$nome' size=30> *<br>";
echo "Nome:<input name='id_novo' type='text' value='$id' size=30> *<br>";
echo "<input type='submit' value='Alterar'>";
echo "</form>";
echo "<br><hr>";
echo "<a href='alterar_db.php?idbusca=$palavra'>Editar</a>";
}
?>
</BODY>
</HTML>
====================================================
alterar_db.php
<?php
$conexao = mysql_connect("localhost","root","");
$db = mysql_select_db("noticias");
mysql_select_db("noticias") or die("Não pude selecionar o banco de dados");
$update = "update dados set nome = \"" . $_POST['nome'] . "\" where id = " . $_POST['id'];
mysql_query($update);
header("Location: alterar.php\n");
//$sql = "UPDATE noticias SET nome= '$nome' where id='$palavra' "; //
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei o que alterei que agora está com este erro

 

( ! ) Notice: Undefined index: idbusca in C:\wamp\www\noticias\alterar.php on line 15 Call Stack # Time Memory Function Location 1 0.0010 143168 {main}( ) ..\alterar.php:0

Não foi possível realizar a consulta ao banco de dados

Compartilhar este post


Link para o post
Compartilhar em outros sites

erro nessa linha:

$sql= ("select id, nome, sobrenome from noticias where id = ".$palavra." ");

solução:

 

$sql = "select id, nome, sobrenome from noticias where id = '$palavra' ";

 

ou

 

$sql = "select id, nome, sobrenome from noticias where id = '".$palavra."'" ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim o ID está sendo passado pelo link que fica assim...http://localhost/noticias/alterar.php?idbusca=4

aí ao clicar dá o erro q mandei anteriormente



  • paulinhosupriano
  • alterei conforme vc mencionou e continua dando erro...

 

( ! ) Notice: Undefined index: idbusca in C:\wamp\www\noticias\alterar.php on line 11 Call Stack # Time Memory Function Location 1 0.0030 143136 {main}( ) ..\alterar.php:0

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = "select id, nome, sobrenome from noticias where id = '".$palavra."'" ;

 

1ª duvida:

se id é 1 , pq entre aspas?? e a concatenação? qual a finalidade disso?

 

2ª: pq 2 pgs p/ alterar?? se não estou entendendo errado,a controlephp e a pg alterar.php são a mesma coisa...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo,

 

Então,

 

possivelmente não está recuperando o ID...

Abaixo o seu código reformulado.

 

<?php
$conexao = mysql_connect("localhost","root","");
$db = mysql_select_db("noticias");
 
$id_editar = (int)$_GET['idbusca'];
 
$sql_update = "UPDATE dados SET nome = '". $_POST['nome']."' WHERE id = '".$id_editar."' ";

$executaSQL = mysql_query($sql_update) or die("Erro ao ATUALIZAR".mysql_error());
 
if($executaSQL){
	echo '<script>alert("Alterado com sucesso!");location.href="alterar.php"</script>';
}else{
	echo 'Erro ao Atualizar, verifique o SQL: '.$sql_update;
} 

 
 
?>

 

 

 

Eu entendi o que queres fazer, só adiantando esta fazendo errado. :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

então,

quando executo ele apresenta o erro "Notice: Undefined index: idbusca in C:\wamp\www\noticias\alterar.php on line 15"

esta linha a que o erro se refere é esta "$palavra = $_GET['idbusca'];"

apesar de exibir a mensagem que foi alterado com sucesso, ele apresenta este erro...



obrigado pela paciência de vcs, mas estou começando agora com PHP e acho q comecei um assunto um pouco avançado pra mim....

Compartilhar este post


Link para o post
Compartilhar em outros sites

alterei o arquivo, e deixei desta forma, não dá erro nenhum porém não atualiza o cadastro selecionado...

 

<?php
include("includes/conn.php");
# comando SQL do banco
$id_editar = (int)$_GET['cod'];
$sql = "UPDATE pfunc
SET nome ='$_POST[nome]';
SET codcoligada ='$_POST[codcoligada]';
SET chapa ='$_POST[chapa]';
SET codsecao ='$_POST[codsecao]';
SET pisparafgts ='$_POST[pisparafgts]';
where codpessoa = '".$id_editar."' ";
$query = mysql_query($sql);
header("Location:listforn.php");
?>


estou usando estes 3 arquivos....

listforn.php traz o cadastro com o botão de atualizar

<HTML>
<HEAD>
<TITLE>Documento PHP</TITLE>
</HEAD>
<BODY>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Funcionarios</title>
<link rel="stylesheet" type="text/css" href="estilos/main.css" />
<script type="text/javascript">
function delRecord(codpessoa) {
var teste = confirm("Tem certeza que quer excluir o registro?");
if (teste==false) {
window.location = "listforn.php";
}
else window.location = "delforn.php?cod="+codpessoa;
}
</script>
</head>
<body>
<table id="data">
<caption>Listagem de Funcionários</caption>
<tr>
<th>ID</th>
<th>Coligada</th>
<th>Matrícula</th>
<th>Chapa</th>
<th>Seção</th>
<th>Nome</th>
<th>PIS</th>
<th>Excluir</th>
<th>Alterar</th>
</tr>
<?php
# Conexão ao servidor MySQL
# e seleção do banco Web21
include("includes/conn.php");
$sql="select * from pfunc";
$query = mysql_query($sql);
while ($linha = mysql_fetch_array($query)) {
echo "<tr>";
echo "<td>$linha[id]</td>";
echo "<td>$linha[codcoligada]</td>";
echo "<td>$linha[codpessoa]</td>";
echo "<td>$linha[chapa]</td>";
echo "<td>$linha[codsecao]</td>";
echo "<td>$linha[nome]</td>";
echo "<td>$linha[pisparafgts]</td>";
echo "<td style='text-align:center'>";
echo "<a href='javascript:delRecord(".$linha['codpessoa'].");'>X</a>";
echo "</td>";
echo "<td style='text-align:center'>";
echo "<a href='altforn.php?cod=".$linha['codpessoa']."'>";
echo "<img src='imagens/edit.png' border='0' width='16' height='16' /></a>";
echo "</td>";
echo "</tr>\n";
}
?>
</table>
</body>
</html>
</table>
</BODY>
</HTML>
===============================================================
altforn.php onde realizo as alterações
<HTML>
<HEAD>
<TITLE>Documento PHP</TITLE>
</HEAD>
<BODY>
<?php
include("includes/conn.php");
$sql="select * from pfunc where codpessoa = '$_GET[cod]'";
$query = mysql_query($sql);
$linha = mysql_fetch_array($query);
?>
<h1>Cadastro de Fornecedores</h1>
<form id="form1" name="form1" method="post" action="doaltforn.php">
<fieldset>
<legend>Cadastro</legend>
<label>ID:</label>
<input type="text" name="id" readonly="readonly" value="<?php echo $linha['id'];?>" /><br />
<input type="text" name="codpessoa" readonly="readonly" value="<?php echo $linha['codpessoa'];?>" /><br />
<label for="nome">Nome:</label>
<input type="text" name="nome" id="nome" value="<?php echo $linha['nome'];?>" /><br />
<label for="nome">Coligada:</label>
<input type="text" name="codcoligada" id="codcoligada" value="<?php echo $linha['codcoligada'];?>" /><br />
<label for="nome">Chapa:</label>
<input type="text" name="chapa" id="chapa" value="<?php echo $linha['chapa'];?>" /><br />
<label for="nome">Seção:</label>
<input type="text" name="codsecao" id="codsecao" value="<?php echo $linha['codsecao'];?>" /><br />
<label for="nome">Pis:</label>
<input type="text" name="pisparafgts" id="pisparafgts" value="<?php echo $linha['pisparafgts'];?>" /><br />
<label></label>
<input name="enviar" type="submit" value="Alterar" />
</fieldset>
</form>
</BODY>
</HTML>
===============================================================
doaltforn.php onde é executado o update, mas não está salvando nada no BD
<?php
include("includes/conn.php");
# comando SQL do banco
$id_editar = $_GET['cod'];
$sql = "UPDATE pfunc
SET nome ='$_POST[nome]';
SET codcoligada ='$_POST[codcoligada]';
SET chapa ='$_POST[chapa]';
SET codsecao ='$_POST[codsecao]';
SET pisparafgts ='$_POST[pisparafgts]';
where codpessoa = '".$id_editar."' ";
$query = mysql_query($sql);
header("Location:listforn.php");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

include("includes/conn.php");
$id_editar = (int)$_GET['cod'];
$nome = $_POST['nome'];
$codcoligada = $_POST['codcoligada'];
$chapa = $_POST['chapa'];
$codsecao = $_POST['codsecao'];
$pisparafgts = $_POST['pisparafgts'];

$sql = "UPDATE pfunc SET nome = '$none', codcoligada = '$codcoligada', chapa = '$chapa', codsecao = '$codsecao', pisparafgts = '$pisparafgts' WHERE codpessoa = " . $id_editar;
$query = mysql_query($sql) or die(mysql_error());
header("Location:listforn.php");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, então seu GET está vindo em branco! Não é possível, haha...

 

Dica: Tente ver isso em outro servidor, sem ser no WAMP. Instala o XAMPP ou bote em algum server online pra testar. Pode ser algum pau do seu PHP local! ;-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você fez o diagnóstico para saber se está retornando o GET como tem muita gente falando aqui?

 

faça assim: Coloque isso e veja se retorna algum ID no alerta da tela.

 

echo "<script>alert('GET a utilizar: ".$_GET['idbusca']."');</script>";

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

creio que o problema seja este mesmo, na página onde roda o update não está recebendo o valor da variável da página anterior, neste caso como resolvo este problema? rsrsrsrsrsrsrs....me desculpe mas sou novato....

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.