php-db | 2001072
Date: 07/29/01
- Next message: Dave Watkinson: "RE: [PHP-DB] replace string - case insensitive"
- Previous message: sg: "Re: [PHP-DB] MySQL newbie: inserting new entry to table?"
- In reply to: olinux: "[PHP-DB] Checking radio buttons for multiple records/Updating multiple records..."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Olinux" <olnx <email protected>> wrote in message
news:HNEALCOEACFDPGGFLEAIIEFGCAAA.olnx <email protected>
> Simplified: I have a tabble of users with an AUTHORIZE field
> [type ENUM - Yes or No]. They sign up and once I authorize
> them. I pull up all of the records and display them something
> like this:
=========== authorize.php =============
<?php
// log into database, etc
$query = "SELECT id, username, authorized FROM "
."users ORDER BY signupdate DESC";
$result = mysql_query($query);
echo "\n<form method='post' action='updater.php'>";
while ($row = mysql_fetch_array($result)) {
echo
"\n\t<br>"
.$row[username]
." - Authorize - "
."<input "
."type='radio' "
."name='authorize[{$row[id]}]' "
."value='Y' "
.($row[authorized] == 'Y' : "checked" : "")
.">"
."Yes "
."<input "
."type='radio' "
."name='authorize[{$row[id]}]' "
."value='N' "
.($row[authorized] == 'N' : "checked" : "")
.">"
."No"
."<input type='hidden' name='oldauthorize[{$row[id]}]' "
."value='{$row[authorized]}'>"
;
}
echo "\n</form>";
?>
=========== end =============
> This works EXCEPT only the last field displays a checked radio button
> [because the names are all the same.
Voila - HTML is happy because the names are different, and PHP
will automatically parse the returned data into an array so it's easy to
work with.
I use an id field - presumable an integer number - so we don't run into
odd characters like ']\?*% that could screw things up; you could use
addslashes on $row[username] if you prefer.
> After this I need to be able to SUBMIT the info to UPDATE the table.
>
> I understand that I will have to execute a number of update statements ...
> But how can I create these statements that tie the correct username and
> AUTHORIZE value together?
Note the final hidden field, containing the original state; this makes
it easy to check whether the value has changed and only update
it if needed:
=========== updater.php ==========
<?php
// log into database, etc
foreach($authorize as $id => $state) {
if ($state != $oldauthorize[$id]) {
$query = "UPDATE users (authorized) "
."VALUES ('{$state}') WHERE id = $id";
$result = mysql_query($query);
// should check $result, make sure the update was successful
}
}
?>
=========== end ===============
If you felt ambitious, you could parse the data into just two
queries - one for authorized='Y' and one for authorized='N',
using "... WHERE id IN ( id1, id2, id3... inN )".
-- PHP Database Mailing List (http://www.php.net/) To unsubscribe, e-mail: php-db-unsubscribe <email protected> For additional commands, e-mail: php-db-help <email protected> To contact the list administrators, e-mail: php-list-admin <email protected>
- Next message: Dave Watkinson: "RE: [PHP-DB] replace string - case insensitive"
- Previous message: sg: "Re: [PHP-DB] MySQL newbie: inserting new entry to table?"
- In reply to: olinux: "[PHP-DB] Checking radio buttons for multiple records/Updating multiple records..."
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

