I would add an id integer field, auto_increment (and therefore a primary key), just so you can easily identify a specific row.
Then, you'd simply select all of the entries in a query, and output a form like so:
$exec = mysql_query($query);
while($result = mysql_fetch_assoc($exec)) {
echo 'Name: ' . $result['name'] . '<br/>
Points: <input type="text" name="points[' . $result['id'] . ']" value="' . $result['points'] . '" /><br/>
Percentage: <input type="text" name="percentage[' . $result['id'] . ']" value="' . $result['percentage'] . '"><hr/>
';
}
Now what you'd have is two POST'ed elements - $POST['points'] and $POST['percentage'] that are arrays; the key is the ID of the row, and the value is the new value submitted in the form.
Then you'd use something like this to form an UPDATE query:
$keys = array_keys($_POST['points']);
for($i=0; isset($_POST['points'][$keys[$i]]) && isset($_POST['percentage'][$keys[$i]]); $i++) {
$query = 'UPDATE `myTable` SET `points` = \'' . mysql_real_escape_string($_POST['points'][$keys[$i]]) . '\', `percentage` = \'' . mysql_real_escape_string($_POST['percentage'][$keys[$i]]) . '\' WHERE `id` = ' . $keys[$i];
$exec = mysql_query($query);
}
If you can't understand the code , let me know, and I'll explain it when I get time.