<html> 
<head> 
  <title>NullUserException's Form</title> 
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
  <script type="text/javascript"> 
   function addRow() {
       var row = '<tr> <td><input type="text" name="name[]"></td> <td><input type="text" name="start[]"></td  <td><input type="text" name="end[]"></td> <td><input type="text" name="wage[]"></td> </tr>';
      $(row).insertBefore("#last");
  }

  </script>
<form method="post">
<table id="thetable">
 <tr>
  <th>Name</th><th>Start</th><th>End</th><th>Wage</th>
 </tr>
 <tr>
  <td><input type="text" name="name[]"></td> 
  <td><input type="text" name="start[]"></td>
  <td><input type="text" name="end[]"></td>
  <td><input type="text" name="wage[]"></td
 </tr>
 <tr id="last">
 <td colspan="4" style="text-align: center">
  <input type="submit">
  <input type="button" value="Add Row" onclick="addRow();">
 </td>
</tr>
</table>
</form>

<pre>
<?php

if (empty($_POST))
    die();

$db = array();

for (
$k=0$k<count($_POST['name']); $k++) {
    
$db[$k] = array(
                
'name'  => $_POST['name'][$k],
                
'start' => $_POST['start'][$k],
                
'end'   => $_POST['end'][$k],
                
'wage'  => $_POST['wage'][$k]
            );
}

echo 
"How it looks like after processing:\n";
print_r($db);

echo 
"\nYou can store them as:\n";

foreach (
$db as $entry) {
    echo 
implode(','$entry) . "\n";
}

echo 
"\nA more useful form is having the name as the key\n";

$newdb = array();
foreach (
$db as $entry) {
    
$name $entry['name'];
    unset(
$entry['name']);
    
$newdb[$name] = $entry;
}

print_r($newdb);

echo 
"\nThen just serialize(\$newdb) and store that\n";

?>

</pre>

</body>
</html>