<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>