Jason Pruim wrote:
Hi everyone,

I am attempting to update a record for a login system while leaving certain fields untouched if they arn't changed, and am running into issues.

Basically what I want to do, is say I have these fields:

Field1
Field2
Field3
Field4

I update Field1 and Field3 but not Field2 and Field4. What I want to do is change the values in Field1 and Field3 without touching the values in Field2 and Field4.

I have tried this code:
        $tab = "\t";
    if (!isset($_POST['txtLoginName']) || empty($_POST['txtLoginName'])) {
$loginName = mysqli_real_escape_string($chpwpostlink, $_POST['txtLoginName']);
        }
        else
        {
            $loginName = $tab;
        }

which works the fields that I've changed, but if I don't submit a value in the form it sets the field to be blank in MySQL. Which is what I am trying to avoid. Any ideas?

$fields = array('Field1', 'Field2', 'Field3', 'Field4');

$update_fields = array();
foreach ($fields as $form_field_name) {
if (!isset($_POST[$form_field_name]) || empty($_POST[$form_field_name]) || $_POST[$form_field_name] == '') {
                // ignore the blank/empty fields
                continue;
        }
$update_fields[] = $form_field_name . "='" . mysqli_real_escape_string($conn, $_POST[$form_field_name]) . "'";
}

if (!empty($update_fields)) {
        $query = 'update table set ';
        $query .= implode(',', $update_fields);
        $query .= ' WHERE recordid='x';
}


If you're just ignoring password fields, you have a confirm password box too don't you?

You can also use that:

$password_one = $_POST['password'];
$password_confirm = $_POST['password_confirm'];

if ($password_one == '' || $password_confirm == '') {
  // skip adding the pw field to the update query
}

--
Postgresql & php tutorials
http://www.designmagick.com/

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to