Ir para conteúdo

Arquivado

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

Luis_Carlos

Alteração de dados de formulario

Recommended Posts

E ai galera blz?

Estou tentando fazer a alteração de dados de cadastro de um formulario, imprimo os dados dados cadastrados no BD,faço as alterações envio para o arquivo que vai fazer o update no BD, mas não altera nada, me retorna os mesmo valores!

 

Código que recebe os dados do BD para atualizar (funciona!)

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Editar</title>
</head>

<body>
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = @mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db('bd_hospital');
if(! $conn )
{
  die('Erro de conexão: ' . mysql_error());
}
$sql = 'SELECT * from pacientes';

mysql_select_db('db_hospital');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
  die('Erro na conex?o: ' . mysql_error());
}
while($row = mysql_fetch_array($retval))
{  
?>
  
<form action="paciente_update.php" method="POST">
Alterar RG: <input type="text" name="id" value="<?php echo $row['id']; ?>" />
Alterar Nome:<input type="text" name="nome" value="<?php echo $row['nome']; ?>" />
Alterar Idade:<input type="text" name="idade" value="<?php echo $row['idade']; ?>" />
Alterar Genero:<input type="text" name="genero" value="<?php echo $row['genero']; ?>" />
AlterarProfissão:<input type="text" name="profissao" value="<?php echo $row['profissao']; ?>" />
Alterar Telefone:<input type="text" name="telefone" value="<?php echo $row['telefone']; ?>" />
Alterar Endereço:<input type="text" name="endereco" value="<?php echo $row['endereco']; ?>" />
<input type="submit" value="Atualizar">
</form>
<?php
}
	?>
	 
	
	 </body>
	 </html>
        

	
    


Código que recebe os dados do arquivo acima para alteração

 <?php


  if (isset($_GET['id'])) {


	$id=$_POST['id'];
$nome=$_POST['nome'];
$idade=$_POST['idade'];
$genero=$_POST['genero'];
$profissao=$_POST['profissao'];
$telefone=$_POST['telefone'];
$endereco=$_POST['endereco'];
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
}
$con = @mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db('bd_hospital');
if(! $con )
{
  die('Erro de conexão: ' . mysql_error());
}
 if(

@mysql_query("UPDATE paciente SET nome='".$nome."', idade= '".$idade."' genero='".$genero."'profissao='".$profissao."' telefone='".$telefone."' endereco='".$endereco."'WHERE id='".$id."'"));

echo "Dados alterados";
mysql_close($con);

?>
	

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por acaso você está alterando o RG? Se ele é a chave do registro, não pode ser alterável.

Teste qualquer alteração sem mudar o RG.

Caso a alteração tenha que ser feita, você tem que alterar sua query, ou criar outro campo que sirva de chave.

Compartilhar este post


Link para o post
Compartilhar em outros sites
fiz o seguinte teste

$teste="UPDATE paciente SET nome='".$nome."', idade= '".$idade."' genero='".$genero."'profissao='".$profissao."' telefone='".$telefone."' endereco='".$endereco."'WHERE id='".$id."'";


echo $teste;


Mostrou a alteração feita corretamente, mas não esta enviando a mesma para o BD...





cleardot.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim no seu rg vc está repassando seu id, se o id não é para ser alteravel te aconselho a repassar em um input hidden, outra vc está renderizando um form via while? Achei estranho tira o $row(mysql_fetch_array de dentro de um while (isso vc usa para listar todos os usuarios que vem do banco, não para renderizar os dados especificos de um registro. Coloque um echo na sua query e logo apos um break e vê o que ela está passando nos parametros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pego o id do cadastrado em outra pagina, que mostra todos os inscritos atraves do seguinte código:

while($row = mysql_fetch_array($retval))
{  
    echo "RG PACIENTE :{$row['id']}  <br> ".
         "NOME 		 : {$row['nome']} <br> ".
         "IDADE		 : {$row['idade']} <br> ".
         "GENERO	 : {$row['genero']} <br> ".
         "PROFISSÃO : {$row['profissao']} <br> ".
         "TELEFONE	 : {$row['telefone']} <br> ".
         "ENDEREÇO	 : {$row['endereco']} <br> ".
	
	  "<a href='atualizar_paciente.php?id=".$row["id"]."'>Alterar</a><br>\n    <a href='deletar_paciente.php?id=".$row["id"]."'>Excluir</a><br>\n";  
	 
	
	 
        
} 
	

o comando que pega exculusivamente o id de um usuario para editar é

'atualizar_paciente.php?id=".$row["id"]

Isso funciona perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

fiz o seguinte teste

$teste="UPDATE paciente SET nome='".$nome."', idade= '".$idade."' genero='".$genero."'profissao='".$profissao."' telefone='".$telefone."' endereco='".$endereco."'WHERE id='".$id."'";

echo $teste;

Mostrou a alteração feita corretamente, mas não esta enviando a mesma para o BD...

cleardot.gif

 

Copia o texto e cola no PHPMyadmin para ver se tem algum erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem uma vírgula aí no meio que não deveria ter.

Ao invés de colocar a query dentro do IF, executando e testando tudo de uma vez, faça o seguinte, nas próximas vezes:

$sql = "SELECT blablabla FROM tabela WHERE condicao";
$query = mysql_query($sql) or die(mysql_error());

E evite colocar o arroba, porque assim os erros não aparecem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi o problema criando uma instrução para o sql:

$sql = "
	update pacientes 
	set nome = '".$nome."'
	  , idade           = '".$idade."'
	  , genero            = '".$genero."' 
	   , profissao            = '".$profissao."' 
	    , telefone            = '".$telefone."' 
		 , endereco            = '".$endereco."' 
	where id = '".$id."';
    ";
	mysql_query($sql);

header ("Location: verpacientes.php");

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.