RE: [PHP] Update Multiple Records From Form
| From: | Ford, Mike [LSS] | Date: | Fri, 28 May 2004 09:50:29 +0000 |
| Subject: | RE: [PHP] Update Multiple Records From Form | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-187104@lists.php.net to get a copy of this message | ||
On 28 May 2004 04:47, Albert Padley wrote:
> I feel I'm so close.
>
> I have a form with multiple database records with a checkbox to
> indicate which records to update set up like so:
>
> $name = "ed[" . $row['id'] . "]";
>
> <input type=\"checkbox\" name=\"" . $name . "\"
> value=\"Y\">
>
> Each text input is set up like so:
>
> <input type=\text\" name=\"fname[]\" value=\"" .
> $row['fname'] . "\">
>
> On the processing page I am doing this:
>
> foreach($ed as $id=>$val){
> $query = "UPDATE ref_events_reg
> SET fname = '$fname'
> WHERE id = '{$id}'";
>
> I am looping through the correct records, but every field is being
> updated to "Array".
>
> What tweak do I need to make?
I'd make two tweaks, actually. First and most obviously, you're not selecting *which*
fname field to pass to your update query, so this needs to be:
$query = "UPDATE ref_events_reg
SET fname = '{$fname[$id]}'
WHERE id = '{$id}'";
(By putting just $fname there, you are telling PHP to insert the string representation of the whole
array -- and the string representation of any array is, er, exactly "Array"! ;)
This change may give you a clue to my other tweak -- I'd explicitly set the indexes of all the
fname[] fields to be sure they sync correctly to the related check box, thus:
<input type=\"checkbox\" name=\"ed[{$row['id']}]\"
value=\"Y\">
<input type=\"text\" name=\"fname[{$row['id']}]\"
value=\"{$row['fname']}\">
Cheers!
Mike
---------------------------------------------------------------------
Mike Ford, Electronic Information Services Adviser,
Learning Support Services, Learning & Information Services,
JG125, James Graham Building, Leeds Metropolitan University,
Headingley Campus, LEEDS, LS6 3QS, United Kingdom
Email: m.ford@leedsmet.ac.uk
Tel: +44 113 283 2600 extn 4730 Fax: +44 113 283 3211