Opdatering af mange poster i Database på en gang
Jeg har en database hvor i jeg har listet små 150 brugere. Jeg har rimelig ofte brug for at opdatere informationer for mange brugere på en gang, og har derfor lavet en formular der lister samtlige brugere, samt de nuværende værdier i databasen skrevet ud i input felter i en formular:http://stabilt.kicks-ass.org/amberlight/guild/AddARPPoints.php
Koden bag formularen ser således ud:
// Fetches all users from Roster Table
$BrugerQuery = mysql_query("SELECT * FROM members ORDER BY class ASC, name ASC");
?>
<HEAD>
<link rel="stylesheet" href="stylesheet.css" type="text/css">
</HEAD>
<form action="<?PHP echo("$PHP_SELF?Step=UPDATE");?>" name="Pointlist" method="Post" enctype="multipart/form-data">
<table width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="100"><span class="Text"><b>Name</b></span></td>
<td width="80"><span class="Text"><b>Class</b></span></td>
<td width="110"><span class="Text"><b>Class Points</b></span></td>
<td width="110"><span class="Text"><b>Hybrid Points</b></span></td>
<td width="200"><span class="Text"><b>Custom Note</b></span></td>
</tr>
<?PHP
while($BrugerRow = mysql_fetch_array($BrugerQuery))
{
echo("<tr>");
echo("<td><span class=\"Text\">$BrugerRow[name]</span></td>");
echo("<td><span class=\"Text\">$BrugerRow[class]</span></td>");
echo("<td><input type=\"text\" name=\"cp$BrugerRow[member_id]\" value=\"$BrugerRow[cp]\" class=\"TekstFelt\"></td>");
echo("<td><input type=\"text\" name=\"hp$BrugerRow[member_id]\" value=\"$BrugerRow[hp]\" class=\"TekstFelt\"></td>");
echo("<td><input type=\"text\" name=\"customnote$BrugerRow[member_id]\" value=\"$BrugerRow[customnote]\" class=\"TekstFelt\"></td>");
echo("</tr>");
}
?>
<tr>
<td valign="top"></td>
<td valign="top"><input type="submit" value="Update Points" class="AnsogKnap"></td>
<td valign="top"></td>
</tr>
</table>
</form>
Jeg har sørget for at hvert felt har et navn der refererer til bruger ID'et.
Tabellen i MySQL databasen er konstrueret således:
CREATE TABLE `members` (
`member_id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(64) NOT NULL default '',
`guild_id` int(11) unsigned NOT NULL default '0',
`class` varchar(32) NOT NULL default '',
`cp` int(9) NOT NULL default '0',
`hp` int(9) NOT NULL default '0',
`customnote` text NOT NULL,
`level` int(11) NOT NULL default '0',
`note` varchar(255) NOT NULL default '',
`guild_rank` int(11) default '0',
`guild_title` varchar(64) default NULL,
`officer_note` varchar(255) NOT NULL default '',
`zone` varchar(64) NOT NULL default '',
`group` varchar(16) NOT NULL default '',
`online` int(1) default '0',
`last_online` datetime default NULL,
`update_time` datetime default NULL,
PRIMARY KEY (`member_id`),
KEY `member` (`guild_id`,`name`),
KEY `name` (`name`),
KEY `class` (`class`),
KEY `level` (`level`),
KEY `guild_rank` (`guild_rank`),
KEY `last_online` (`last_online`)
) TYPE=MyISAM AUTO_INCREMENT=260 ;
Mit problem er at få scriptet til at gennemløbe formularen, samt at opdatere posterne cp, hp og customnote for hver enkelt bruger.
Er der nogen der kan vise mig hvordan jeg kan gøre dette?
