Re: [PHP-DB] Not updating certain fields in same row
[email protected] ("Matt Anderton")
| Newsgroups | php.db |
|---|---|
| Message-ID | <[email protected]> |
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]
>
>
>
>