Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
tenho um form com os campos USER,PASS, EMAIL.
qndo entro nesse form os campos USER e EMAIL ja são carregados.
digamos que eu queira alterar só o EMAIL, ou só o USER, ou só o PASS, ou os Três de uma vez
qual a melhor maneira de fazer o UPDATE?
usando o IF para fazer UPDATE só nos q tiverem valor? ou na própria query da pra fazer essa verificação e só fazer o update nos campos que contem algum valor?Bom, já que está preenchido você pode atualizar os 3, exemplo:
Vamos supor que os valores são esses abaixo.
$id = 1
$User = Miguel
$Pass = 123
$Email = miguel@miguel.com
"update tabela set user =" . $User . ", pass =" . $Pass . ", email =" . $Email . "where id =" . $id;
Com isso, só o que você mudou será alterado.
correção do meu code acima:
$updateSql = '';
foreach($_POST as $campo => $valor){
if(!empty($valor) || !isset($valor)){
$updateSql .= $campo.' = '.$valor.',';
}
}
$update = substr($updateSql, 0, -1);
eu acho que não li direito e não vi que os campos tinham que estar preenchidos.
>
correção do meu code acima:
$updateSql = '';
foreach($_POST as $campo => $valor){
if(!empty($valor) || !isset($valor)){
$updateSql .= $campo.' = '.$valor.',';
}
}
$update = substr($updateSql, 0, -1);
eu acho que não li direito e não vi que os campos tinham que estar preenchidos.
da hora vinicius, ajudou bastante :thumbsup:
Aprimorei o script iniciado pelo Vinicius que faz o UPDATE somente dos campos que tiverem valor.!
Creio que ajudará bastante gente :thumbsup:
<?php
if($_POST['butao']=='Salvar'){
// 1 - Vinicius Rangel
$updateSql = ''; // INICIO
foreach($_POST as $campo => $valor){
if(!empty($valor) || !isset($valor)){
$updateSql .= $campo." = '".$valor."', ";
}
}
$update = substr($updateSql, 0, -1); // FIM
//------------------------------------
// 2 - HUGO S...
$a = str_replace(", butao = 'Salvar',", "", $update); // INICIO
$b = preg_match("/`password` =\ '(.*)'/", $a, $c);
$pass = md5($c[1]);
$query = ereg_replace("`password` = '(.*)'", "`password` = '".$pass."'", $a);
echo '"UPDATE `tabela` SET '.$query.' WHERE `id`=1"'; // FIM
}
?>
<form name="MyForm" action="" method="post" >
<table>
<tr>
<td>Usuário: <input type="text" name="`username`" /></td>
</tr>
<tr>
<td>Senha: <input type="password" name="`password`" /></td>
</tr>
<tr>
<td>Email: <input type="text" name="`useremail`" /></td>
</tr>
</table>
<input type="submit" name="butao" value="Salvar" />
</form>
faça assim: