Jump to content

[SOLVED] Updating form data in a db


rondog

Recommended Posts

compare the new values against the retrieved values:

 

<?php
//..
$row = mysql_fetch_assoc($result);
//..

if (!empty($_POST)) {
    //validate
    if ($row['..'] !== $_POST['..']) {
       $set .= 'field = ' . $_POST['..'];
    }
    
    $query = "UPDATE table SET $set WHERE id = ..";
    //query..
}
?>

<form action="" ..>
   <input type="text" name=".. " value="<?php print $row['..']; ?>" ..

Ok I pretty much did exactly what you posted. Its not the cleanest, but it works..any suggestions?

if (isset($_POST['save']))
{
$id 		= $_GET['id'];
$current 	= mysql_query("SELECT * FROM users WHERE id = '".$id."'")or die(mysql_error());
$current 	= mysql_fetch_array($current);

$salutation	= $_POST['salutation'];
$firstname	= mysql_real_escape_string($_POST['firstname']);
$lastname	= mysql_real_escape_string($_POST['lastname']);
$email		= mysql_real_escape_string($_POST['email']);
$userid		= mysql_real_escape_string($_POST['userid']);
$active		= $_POST['actives'];
$level		= $_POST['level'];

$updates	= array();
$status		= "";

if ($current['salutation'] != $salutation)
{
	array_push($updates,"salutation = '".$salutation."'");
}
if ($current['firstname'] != $firstname)
{
	array_push($updates,"firstname = '".$firstname."'");
}
if ($current['lastname'] != $lastname)
{
	array_push($updates,"lastname = '".$lastname."'");
}
if ($current['email'] != $email)
{
	$query 	= mysql_query("SELECT email FROM users WHERE email = '".$email."' AND id != '".$id."'") or die(mysql_error());
	$num	= mysql_num_rows($query);
	if ($num > 0)
	{
		$status .= "The email you chose is already in use.<br/>";
	}
	else
	{
		array_push($updates,"email = '".$email."'");
	}
}
if ($current['userid'] != $userid)
{
	$query 	= mysql_query("SELECT userid FROM users WHERE userid = '".$userid."' AND id != '".$id."'") or die(mysql_error());
	$num	= mysql_num_rows($query);
	if ($num > 0)
	{
		$status .= "The user ID you chose is already in use.";
	}
	else
	{
		array_push($updates,"userid = '".$userid."'");
	}
}
if ($current['active'] != $active)
{
	array_push($updates,"active = '".$active."'");
}
if ($current['level'] != $level)
{
	array_push($updates,"level = '".$level."'");
}

if ($status == "" && count($updates) != 0)
{
	$query 	= mysql_query("UPDATE users SET ".implode(", ",$updates)." WHERE id = '".$id."'") or die(mysql_error());
	$status .= "Successfully updated.";
}
}

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.