Ir para conteúdo

POWERED BY:

Arquivado

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

alexandre_bard

alterar somente campos preenchidos

Recommended Posts

oi pessoal, boa tarde

tenho 3 arquivos onde trabalho com um formulário.

no 1º: visualizar.php

ele traz os dados do banco de dados

 

no 2º: alteracao.php

ele traz os campos para preencher

 

e no 3º: alterar_dados_concluido.php

ele recebe os valores para alterar no banco de dados.

 

Dúvida: como fazer para que somente os campos preenchidos sejam alterados no banco de dados?

 

abaixo vou listar os códigos para visualizar:

visualizar.php

<form method="get">

<CENTER>


<table border='1' align=‘center' width=900> 


<tr>
<td colspan='23'> 
<br><br>
<estilofonte>
Digite o nome do Colaborador: 
<input type="text" name="NOME" style="width: 350px">
<input type="submit" value="Pesquisar">


<p>




<?php






if ($_GET)
{






$NOME=$_GET['NOME'];
print("Mostrando os dados do Colaborador: $NOME");


print("<p>");


require("conecta.inc"); //inclui o arquivo para conexão
$link=conecta_bd() or die ("Não é possível conectar-se ao servidor.");
$resultado=mysqli_query($link,"Select * from funcionario where NOME='$NOME'") 
or die ("Não é possível retornar dados do Colaborador!");




print("<tr><td colspan='23'><b>Dados do Funcionário:</b></td></tr>");
print("<tr><td>Código</td>");
print("<td>Nome</td>");
print("<td>Endereço</td>");
print("<td>Bairro</td>");
print("<td>CEP</td>");
print("<td>Cidade</td>");
print("<td>UF</td>");
print("<td>Telefone</td>");
print("<td>Celular</td>");
print("<td>E-mail</td>");
print("<td>Nascimento</td>");
print("<td>Cidade Nascimento</td>");
print("<td>Estado Civil</td>");
print("<td>Cor</td>");
print("<td>RG</td>");
print("<td>Data de Expedição</td>");
print("<td>CPF</td>");
print("<td>PIS/PASEP</td>");
print("<td>Banco</td>");
print("<td>Agência</td>");
print("<td>Dependentes</td>");
print("<td>Cargo</td>");
print("<td>Cód. Departamento </b><br></td></tr>");


while ($linha=mysqli_fetch_array($resultado)) {
$ID_FUNCIONARIO=$linha["ID_FUNCIONARIO"];
$NOME= utf8_encode($linha["NOME"]);
$ENDERECO= utf8_encode($linha["ENDERECO"]);
$BAIRRO= utf8_encode($linha["BAIRRO"]);
$CEP= utf8_encode($linha["CEP"]);
$CIDADE= utf8_encode($linha["CIDADE"]);
$UF= utf8_encode($linha["UF"]);
$TELEFONE_FIXO= utf8_encode($linha["TELEFONE_FIXO"]);
$CELULAR= utf8_encode($linha["CELULAR"]);
$EMAIL= utf8_encode($linha["EMAIL"]);
$NASCIMENTO= utf8_encode($linha["NASCIMENTO"]);
$CIDADE_NASCIMENTO= utf8_encode($linha["CIDADE_NASCIMENTO"]);
$ESTADO_CIVIL= utf8_encode($linha["ESTADO_CIVIL"]);
$COR= utf8_encode($linha["COR"]);
$RG= utf8_encode($linha["RG"]);
$DATA_EXPEDICAO= utf8_encode($linha["DATA_EXPEDICAO"]);
$CPF= utf8_encode($linha["CPF"]);
$PIS_PASEP= utf8_encode($linha["PIS_PASEP"]);
$BANCO= utf8_encode($linha["BANCO"]);
$AGENCIA= utf8_encode($linha["AGENCIA"]);
$DEPENDENTES= utf8_encode($linha["DEPENDENTES"]);
$CARGO= utf8_encode($linha["CARGO"]);
$ID_DEPARTAMENTO= $linha["ID_DEPARTAMENTO"];


print("<tr><td>$ID_FUNCIONARIO</td>");
print("<td>$NOME</td>");
print("<td>$ENDERECO</td>");
print("<td>$BAIRRO</td>");
print("<td>$CEP</td>");
print("<td>$CIDADE</td>");
print("<td>$UF</td>");
print("<td>$TELEFONE_FIXO</td>");
print("<td>$CELULAR</td>");
print("<td>$EMAIL</td>");
print("<td>$NASCIMENTO</td>");
print("<td>$CIDADE_NASCIMENTO</td>");
print("<td>$ESTADO_CIVIL</td>");
print("<td>$COR</td>");
print("<td>$RG</td>");
print("<td>$DATA_EXPEDICAO</td>");
print("<td>$CPF</td>");
print("<td>$PIS_PASEP</td>");
print("<td>$BANCO</td>");
print("<td>$AGENCIA</td>");
print("<td>$DEPENDENTES</td>");
print("<td>$CARGO</td>");
print("<td>$ID_DEPARTAMENTO </b><br></td></tr>");}?>


<tr height=5> 
<tr>
<td colspan="23">






<a href="#" onclick="window.open('alteracao.php', 'Pagina', 'STATUS=NO, TOOLBAR=NO, LOCATION=NO, DIRECTORIES=NO, RESISABLE=NO, SCROLLBARS=YES, TOP=150, LEFT=200, WIDTH=1020, HEIGHT=450');"><input type="button" value="Alterar esse cadastro"></a>
<a href="index.php"><input type="button" value="Cancelar"></a>
</td> </tr></td> </tr>
<?php
print("</table></center>"); }
?>
alteracao.php
<form action="alterar_dados_concluido.php" method="get"> 


<CENTER>


<table border='1' align=‘center' width=800> 


<tr>
<td > 
<CENTER>
<estilofonte>Digite os novos dados a serem alterados:
<br>
<tr>




<td > <estilofonte>
<font color=red>*</font> Reescreva o código do Colaborador: <br><input type="text" name="ID_FUNCIONARIO" style="width: 350px"> 
<br><br>
<table border='1' width="920">


<tr>
<td colspan="4"><font color=red>*</font> Nome Completo: <input type="text" name="NOME" style="width: 320px"> </td>
</tr>
<tr>
<td colspan="2">Endereço: <input type="text" name="ENDERECO" style="width: 300px"></td>
<td colspan="2">Bairro: <input type="text" name="BAIRRO" style="width: 150px"></td>
</tr>
<tr>
<td>Cep: <input type="text" name="CEP" style="width: 74px"></td>
<td colspan="2">Cidade: <input type="text" name="CIDADE" style="width: 220px"></td>
<td>UF: <input type="text" name="UF" style="width: 35px"></td>
</tr>
<tr>
<td><font color=red>*</font> Telefone: <input type="text" name="TELEFONE_FIXO" style="width: 100px"></td>
<td><font color=red>*</font> Celular: <input type="text" name="CELULAR" style="width: 100px"></td> 
<td colspan="3">E-mail: <input type="text" name="EMAIL" style="width: 220px"></td>
</tr>
<tr> 
<td>Data de Nascimento: <input type="text" name="NASCIMENTO" style="width: 74px"></td> 
<td colspan="2">Cidade Nascimento: <input type="text" name="CIDADE_NASCIMENTO" style="width: 220px"></td> 
<td>UF Nascimento: <input type="text" name="UF_NASCIMENTO" style="width: 35px"></td> 
</tr>
<tr> 
<td>Estado Civil: <input type="text" name="ESTADO_CIVIL" style="width: 74px"></td>
<td>Cor: <input type="text" name="COR" style="width: 74px"> </td>
<td><font color=red>*</font> RG: <input type="text" name="RG" style="width: 84px"> </td>
<td>Data Expedição: <input type="text" name="DATA_EXPEDICAO" style="width: 74px"></td>
</tr>
<tr> 
<td><font color=red>*</font> CPF: <input type="text" name="CPF" style="width: 100px"></td>
<td>PIS/PASEP: <input type="text" name="PIS_PASEP" style="width: 120px"></td>
</tr>
<tr> 
<td>Banco (se houver): <input type="text" name="BANCO" style="width: 74px"></td>  
<td>Agência: <input type="text" name="AGENCIA" style="width: 74px"> </td>
<td colspan="2">Número de Dependentes: <input type="text" name="DEPENDENTES" style="width: 50px"></td>
</tr>
<tr> 
<td>Seu cargo será: <input type="text" name="CARGO" style="width: 220px"></td>
<td colspan="3"><font color=red>*</font> Setor: <select name="ID_DEPARTAMENTO" style="width: 120px">


<?php 
require("conecta.inc"); 
$link=conecta_bd() or die ("Não é possível conectar-se ao servidor.");
$resultado=mysqli_query($link,"Select * from  departamentos");






while ($linha=mysqli_fetch_array($resultado)) {


$NOME= utf8_encode($linha["NOME"]);
$ID_DEPARTAMENTO= utf8_encode($linha["ID_DEPARTAMENTO"]);


print("<option value='$ID_DEPARTAMENTO'>$NOME</option>");
} 
?>
</select>  


<br>
<br>
</td>
</tr>
<tr>
<td colspan=4>
<center>


<input type="submit" value="Confirmar" > 






</form>
alterar_dados_concluido.php
<?php 
$ID_FUNCIONARIO=$_GET['ID_FUNCIONARIO'];
$NOME=$_GET['NOME'];
$ENDERECO=$_GET['ENDERECO'];
$BAIRRO=$_GET['BAIRRO'];
$CEP=$_GET['CEP'];
$CIDADE=$_GET['CIDADE'];
$UF=$_GET['UF'];
$TELEFONE_FIXO=$_GET['TELEFONE_FIXO'];
$CELULAR=$_GET['CELULAR'];
$EMAIL=$_GET['EMAIL'];
$NASCIMENTO=$_GET['NASCIMENTO'];
$CIDADE_NASCIMENTO=$_GET['CIDADE_NASCIMENTO'];
$UF_NASCIMENTO=$_GET['UF_NASCIMENTO'];
$ESTADO_CIVIL=$_GET['ESTADO_CIVIL'];
$COR=$_GET['COR'];
$RG=$_GET['RG'];
$DATA_EXPEDICAO=$_GET['DATA_EXPEDICAO'];
$CPF=$_GET['CPF'];
$PIS_PASEP=$_GET['PIS_PASEP'];
$BANCO=$_GET['BANCO'];
$AGENCIA=$_GET['AGENCIA'];
$DEPENDENTES=$_GET['DEPENDENTES'];
$CARGO=$_GET['CARGO'];
$ID_DEPARTAMENTO=$_GET['ID_DEPARTAMENTO'];




if ($NOME=='') 
print("Faltou preencher o nome...");




else { require("conecta.inc"); 


$link=conecta_bd() or die ("Não é possível conectar-se ao servidor.");


print("Alterando os dados do Colaborador: $NOME<p>"); 


mysqli_query($link, "update funcionario set NOME='$NOME', ENDERECO='$ENDERECO', BAIRRO='$BAIRRO', CEP='$CEP', CIDADE='$CIDADE', UF='$UF', TELEFONE_FIXO='$TELEFONE_FIXO', CELULAR='$CELULAR', EMAIL='$EMAIL', NASCIMENTO='$NASCIMENTO', CIDADE_NASCIMENTO='$CIDADE_NASCIMENTO', UF_NASCIMENTO='$UF_NASCIMENTO', ESTADO_CIVIL='$ESTADO_CIVIL', COR='$COR', RG='$RG', DATA_EXPEDICAO='$DATA_EXPEDICAO', CPF='$CPF', PIS_PASEP='$PIS_PASEP', BANCO='$BANCO', AGENCIA='$AGENCIA', DEPENDENTES='$DEPENDENTES', CARGO='$CARGO', ID_DEPARTAMENTO='$ID_DEPARTAMENTO' 
where ID_FUNCIONARIO='$ID_FUNCIONARIO'");




 print("Dados alterados com sucesso!");
} 


?>
Então, essa é minha dúvida: Como alterar somente os campos que foram preenchidos??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual seria o objetivo disto na realidade? Se for apenas diminuir a carga do BD, esquece, o próprio MySQL já faz isto internamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carrega o form de atualização com os dados já preenchidos nos inputs e depois faz o update passando por todos os campos, os que foram modificados logo serão atualizados no BD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei utilizar essa última dica do Osmar L Lima

mas estou com uma dúvida... (sou novo em php... )

 

refiz o código e ficou assim:

visualizar.php

<?php

if ($_GET)
{
$NOME=$_GET['NOME'];
print("Mostrando os dados do Colaborador: $NOME");
print("<p>"); ?>
<form action="alterar_dados_concluida2.php" method="get">
<?php
require("conecta.inc"); //inclui o arquivo para conexão
$link=conecta_bd() or die ("Não é possível conectar-se ao servidor.");
$resultado=mysqli_query($link,"Select * from funcionario where NOME='$NOME'")
or die ("Não é possível retornar dados do Colaborador!");
print("<tr><td colspan='23'><b>Dados do Funcionário:</b></td></tr>");
print("<tr><td>Código</td>");
print("<td>Nome</td>");
print("<td>Endereço</td>");
print("<td>Bairro</td>");
print("<td>CEP</td>");
print("<td>Cidade</td>");
print("<td>UF</td>");
print("<td>Telefone</td>");
print("<td>Celular</td>");
print("<td>E-mail</td>");
print("<td>Nascimento</td>");
print("<td>Cidade Nascimento</td>");
print("<td>Estado Civil</td>");
print("<td>Cor</td>");
print("<td>RG</td>");
print("<td>Data de Expedição</td>");
print("<td>CPF</td>");
print("<td>PIS/PASEP</td>");
print("<td>Banco</td>");
print("<td>Agência</td>");
print("<td>Dependentes</td>");
print("<td>Cargo</td>");
print("<td>Cód. Departamento </b><br></td></tr>");
while ($linha=mysqli_fetch_array($resultado)) {
$ID_FUNCIONARIO=$linha["ID_FUNCIONARIO"];
$NOME= utf8_encode($linha["NOME"]);
$ENDERECO= utf8_encode($linha["ENDERECO"]);
$BAIRRO= utf8_encode($linha["BAIRRO"]);
$CEP= $linha["CEP"];
$CIDADE= utf8_encode($linha["CIDADE"]);
$UF= $linha["UF"];
$TELEFONE_FIXO= $linha["TELEFONE_FIXO"];
$CELULAR= $linha["CELULAR"];
$EMAIL= utf8_encode($linha["EMAIL"]);
$NASCIMENTO= $linha["NASCIMENTO"];
$CIDADE_NASCIMENTO= utf8_encode($linha["CIDADE_NASCIMENTO"]);
$ESTADO_CIVIL= utf8_encode($linha["ESTADO_CIVIL"]);
$COR= utf8_encode($linha["COR"]);
$RG= utf8_encode($linha["RG"]);
$DATA_EXPEDICAO= $linha["DATA_EXPEDICAO"];
$CPF= $linha["CPF"];
$PIS_PASEP= $linha["PIS_PASEP"];
$BANCO= $linha["BANCO"];
$AGENCIA= $linha["AGENCIA"];
$DEPENDENTES= $linha["DEPENDENTES"];
$CARGO= utf8_encode($linha["CARGO"]);
$ID_DEPARTAMENTO= $linha["ID_DEPARTAMENTO"];
print("<tr><td>$ID_FUNCIONARIO</td>");
print("<td><input type=\"text\" name=\"NOME\" value=\"$NOME\"></td>");
print("<td><input type='text' value='$ENDERECO'></td>");
print("<td><input type='text' value='$BAIRRO'></td>");
print("<td><input type='text' value='$CEP'></td>");
print("<td><input type='text' value='$CIDADE'></td>");
print("<td><input type='text' value='$UF'></td>");
print("<td><input type='text' value='$TELEFONE_FIXO'></td>");
print("<td><input type='text' value='$CELULAR'></td>");
print("<td><input type='text' value='$EMAIL'></td>");
print("<td><input type='text' value='$NASCIMENTO'></td>");
print("<td><input type='text' value='$CIDADE_NASCIMENTO'></td>");
print("<td><input type='text' value='$ESTADO_CIVIL'></td>");
print("<td><input type='text' value='$COR'></td>");
print("<td><input type='text' value='$RG'></td>");
print("<td><input type='text' value='$DATA_EXPEDICAO'></td>");
print("<td><input type='text' value='$CPF'></td>");
print("<td><input type='text' value='$PIS_PASEP'></td>");
print("<td><input type='text' value='$BANCO'></td>");
print("<td><input type='text' value='$AGENCIA'></td>");
print("<td><input type='text' value='$DEPENDENTES'></td>");
print("<td><input type='text' value='$CARGO'></td>");
print("<td><input type='text' value='$ID_DEPARTAMENTO'> </b><br></td></tr>");}
?>
<tr height=5>
<tr>
<td colspan="23">
<a href="#" onclick="window.open('alterar_dados_concluida2.php', 'Pagina', 'STATUS=NO, TOOLBAR=NO, LOCATION=NO, DIRECTORIES=NO, RESISABLE=NO, SCROLLBARS=YES, TOP=150, LEFT=200, WIDTH=1020, HEIGHT=450');">
<input type='SUBMIT' name='alterar_dados_concluida2.php' Value='Alterar Cadastro'> </form> </a>
<a href="index.php"><input type="button" value="Cancelar"></a>
</td> </tr></td> </tr>
<?php
print("</table></center>"); }
?>

daí ele envia para o alterar_dados_concluido.php que continua o mesmo código
detalhe: (não sei se está certo, provavelmente não...)
acrescentei, como viram no código o form com a action para atualizar para o alterar_dados_concluido.php
Não sei se está no local correto, nem sei se é certo colocá-lo ali.
Agora, depois de tentar alterar os dados, retorna a msg:
Undefined index: ID_FUNCIONARIO no código alterar_dados_concluido.php
o que estou fazendo de errado?

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.