<input name="campo1" type="text" id="campo1" /> <INPUT TYPE="submit" name="inserir" VALUE="inserir">
$nome = $_POST[campo1];
mysql_query("UPDATE `nome_da_bd`.`tabela` SET `campo` = '$nome'") or die(mysql_error());
Isto ja eu sei. Mas eu queria que ele so fizesse o UPDATE onde houve dados, pois se fizer um UPDATE geral, ele apagar os dados antigo, e fica o campo em branco.
Ou então que fizesse o UPDATE individualmente, talvez com IF mas assim ficaria muitas condiçoes.
Eu queria é como o sistema aqui do forum.
$update = mysql_query("UPDATE usuarios_vip SET nome='$nome', email='$email', cel='$cel', sexo='$sexo', curso='$curso' WHERE login='$login'") or die(mysql_error());
<?php
$actualizar = array();
if (isset($_POST['nome']) && ($nome = $_POST['nome']) != $fetch_assoc['nome'])
$actualizar[] = 'nome = ' . mysql_real_escape_string($nome);
if (isset($_POST['email']) && ($email = $_POST['email']) != $fetch_assoc['email'] && email_valido($email))
$actualizar[] = 'email ' . mysql_real_escape_string($email);
if (count($actualizar) > 0)
mysql_query('UPDATE SET usuarios_vip ' . implode(', ', $actualizar) . ' WHERE login = ' . $login) or die(mysql_error());
header('Location: ' . $_SERVER['PHP_SELF']);
exit();
?>
<?php
// obtém via http get o id do utilizador (http://www.exemplo.com?id=)
$id = (isset($_GET['id']) ? (int)$_GET['id'] : 0);
// selecciona os campos desse determinado id..
$query = mysql_query('SELECT nome, email FROM usuarios_vip WHERE id = ' . mysql_real_escape_string($id)) or die(mysql_error());
// se não existir nenhuma linha no registo com o iD obtido..
if (mysql_num_rows == 0)
exit('Não existe nenhum utilizador com este iD!');
// obtém os resultados dos campos..
$fetch_assoc = mysql_fetch_assoc($query);
// definimos a variável como uma array (conjunto de valores)..
$actualizar = array();
// Aqui só irá actualizar se:
// A super-variável $_POST['nome'] estiver definida;
// For diferente do campo obtido pelo query (se for diferente do que já está registado na bd (ie: tenho o meu nome definido na bd, ele só irá alterar se eu alterar o campo do nome no input));
if (isset($_POST['nome']) && ($nome = $_POST['nome']) != $fetch_assoc['nome'])
$actualizar[] = 'nome = ' . mysql_real_escape_string($nome);
// Aqui só irá actualizar se:
// A super-variável $_POST['nome'] estiver definida;
// For diferente do campo obtido pelo query (se for diferente do que já está registado na bd (ie: tenho o meu email definido na bd, ele só irá alterar se eu alterar o campo do email no input));
// Se o email for válido (necessitas da função);
if (isset($_POST['email']) && ($email = $_POST['email']) != $fetch_assoc['email'] && email_valido($email))
$actualizar[] = 'email ' . mysql_real_escape_string($email);
// se houver campos para alterar..
if (count($actualizar) > 0)
// actualiza
// o implode irá juntar os campos separados por uma vírgula
mysql_query('UPDATE SET usuarios_vip ' . implode(', ', $actualizar) . ' WHERE id = ' . mysql_real_escape_string($id)) or die(mysql_error());
// volta para uma página
header('Location: pagina.php');
exit();
?>
$sexos = "<option value=0></option>\n";
$array = array(
array("id" => 1, "sexo" => "Masculino"),
array("id" => 2, "sexo" => "Feminino"),
array("id" => 3, "sexo" => "Não tenho a certeza"),
);
foreach ($array as $sexo) {
$sexos .= "<option value=".$sexo["id"]."" . ($fetch_assoc["sexo"] == $sexo["id"] ? " selected" : "") . ">".$sexo["sexo"]."</option>\n";
}
echo "<select name='sexo'>\n$sexos\n</select>";
<input type="hidden" name="process" value="time1" />
<input type="hidden" name="process" value="time2" />
if ($_POST['process'] == "time2") {
$update = mysql_query("UPDATE usuarios_vip SET nome='$nome', email='$email', cel='$cel', sexo='$sexo', curso='$curso' WHERE login='$login'") or die(mysql_error());
}