I usually pre-populate the form with the values that are already in the
record:

(... using PEAR's MDB2 package -- http://pear.php.net/packages/MDB2 )

$query = "SELECT * FROM member WHERE username = '" . $_POST['username'] .
"'";
$result = $db->query($query);
$member = $result->fetchRow(MDB2_FETCHMODE_ASSOC);

foreach ($member as $key => $value) {
     $$key = $value;
}

<form name="member_edit" action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
     <input type="hidden" name="_submit" value="1" />
     <input type="text" name="fname" value="<?= $fname ?>" />
     <input type="text" name="lname" value="<?= $lname ?>" />
     <input type="text" name="email" value="<?= $email ?>" />
     ....
     ....
     ....
</form>

then when they submit, the record is just repopulated with whatever is in
the form when they submit.  ie -- only fields they changed get changed in
the db.

if($_POST['_submit']) {
     $update = "UPDATE member SET ...... blah, blah..."
}

that way, none of the fields are blank unless they were in the db blank to
begin with.  and you can add client or server-side validation to prevent
that.

-- matt





On Tue, Mar 25, 2008 at 11:59 AM, Jason Pruim <[EMAIL PROTECTED]> 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?
>
> --
>
> Jason Pruim
> Raoset Inc.
> Technology Manager
> MQC Specialist
> 3251 132nd ave
> Holland, MI, 49424-9337
> www.raoset.com
> [EMAIL PROTECTED]
>
>
>
>

Reply via email to