Adaptei um script php que pega apenas os dados que foram preenchidos em um formulário para dar um update no banco de dados. Mas o script executa como se fosse feito o update, porém os dados no banco não foram alterados... alguém pode me ajudar a entender o por quê disso? Segue o script.
function checkForm($arrayCampos,$method){ //função que verifica o preenchimento dos campos definidos em $arrayCampos
$method=strtoupper($method); //coloca o conteúdo de $method para maiúsculas para evitar erros no if()
$campos='';
if($method=='POST'){//se o método é POST e sempre será post
while(list($k,$c)=each($arrayCampos)){//pega cada nome de campo de $arrayCampos
$var=trim($_POST[$c]);//Coloca o valor do campo em uma variável
if(!($var=="")){
//echo '<br>Campos que foram pegos.: '.$var; ##aqui é só um teste pra saber se estava funcionando direitinho.
//echo '<br>nome do campo.: '.$c;
$campos.=$c.'='."'".$var."'".','; //estou montando aqui o nome do campo e o valor do campo pra dar o UPDATE logo mais a frente
}
}
$campos = rtrim($campos,","); // retiro a ultima virgula para não ter problemas de sintaxe
$atualiza = mysql_query("UPDATE curriculos SET $campos WHERE CPF='$cpfUser'") or die (mysql_error());//update montado.
if($atualiza){
header("location:../sucesso.php");
}
}else{
erro('Ops! Algo de errado aconteceu.');
}
}
$arrayCampos=array( //este array deve conter os nomes dos campos que você deseja verificar se foram preenchidos
'nomeCompleto','nomePai','nomeMae','nacionalidade','naturaldeOnde','sexo','rg','dtExpedicao','expedidor','corPele','pisPasep','CPF','dtNascimento','estadoCivil','qtDependentes'
);
if($_POST[oculto])
{checkForm($arrayCampos,'post');} //chamar a função com o array dos campos que você deseja verificar e o método de envio de dados do formulário (post)
?>
Pergunta
d1abl0
Adaptei um script php que pega apenas os dados que foram preenchidos em um formulário para dar um update no banco de dados. Mas o script executa como se fosse feito o update, porém os dados no banco não foram alterados... alguém pode me ajudar a entender o por quê disso? Segue o script.
<?
session_start();
include("../conectaDb.php");
$cpfUser = $_SESSION['cpfUsuario'];
function checkForm($arrayCampos,$method){ //função que verifica o preenchimento dos campos definidos em $arrayCampos
$method=strtoupper($method); //coloca o conteúdo de $method para maiúsculas para evitar erros no if()
$campos='';
if($method=='POST'){//se o método é POST e sempre será post
while(list($k,$c)=each($arrayCampos)){//pega cada nome de campo de $arrayCampos
$var=trim($_POST[$c]);//Coloca o valor do campo em uma variável
if(!($var=="")){
//echo '<br>Campos que foram pegos.: '.$var; ##aqui é só um teste pra saber se estava funcionando direitinho.
//echo '<br>nome do campo.: '.$c;
$campos.=$c.'='."'".$var."'".','; //estou montando aqui o nome do campo e o valor do campo pra dar o UPDATE logo mais a frente
}
}
$campos = rtrim($campos,","); // retiro a ultima virgula para não ter problemas de sintaxe
$atualiza = mysql_query("UPDATE curriculos SET $campos WHERE CPF='$cpfUser'") or die (mysql_error());//update montado.
if($atualiza){
header("location:../sucesso.php");
}
}else{
erro('Ops! Algo de errado aconteceu.');
}
}
$arrayCampos=array( //este array deve conter os nomes dos campos que você deseja verificar se foram preenchidos
'nomeCompleto','nomePai','nomeMae','nacionalidade','naturaldeOnde','sexo','rg','dtExpedicao','expedidor','corPele','pisPasep','CPF','dtNascimento','estadoCivil','qtDependentes'
);
if($_POST[oculto])
{checkForm($arrayCampos,'post');} //chamar a função com o array dos campos que você deseja verificar e o método de envio de dados do formulário (post)
?>
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.