Ok, this looks quite "databasey" so I guess you will have a query like: SELECT Rowid, Person, Timediff FROM transitional_records ORDER BY Timediff I don't know what DB you use. let's say it is MySQL (the others are similar). Always provide such things when asking for advice. Else it's not easy to help. EXAMPLE <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT Rowid, Person, Timediff FROM transitional_records ORDER BY Timediff"); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { // do something with the result here } mysql_free_result($result); ?> So what we get is an array like this .. array ( Person => (string), Timediff => (numeric) ); Rowid, Person and Timediff are the only Values we need to get each entries Groupid. Now back to our example .. EXAMPLE <?php mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $result = mysql_query("SELECT Rowid, Person, Timediff FROM transitional_records ORDER BY Timediff"); $persons = array(); // array containing each persons current Groupid $rowids = array(); // array containing each row's groupid while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $rowids[$row['Rowid']] = 0; // default for a row's groupid if ($row['Timediff'] > 60) { if (!isset($persons[$row['Person']])) $persons[$row['Person']] = 0; ++$persons[$row['Person']]; } if (isset($persons[$row['Person']])) $rowids[$row['Rowid']] = $persons[$row['Person']]; } var_dump($rowids); mysql_free_result($result); ?> So what is that script doing? Well, first of all we set 2 arrays $persons and $rowids; $persons is some sort of buffer for each person's current Groupid whilst processing the table entries. $rowids contains Groupid for each Row (set whilst processing) WHILE LOOP: First the current row's Groupid is set to the default value, which is zero ( $rowids[CURRENT_ID] = 0 ). Then we check whether the Timediff of the current row is greater than 60 or not. IF it is the person's current Groupid is incremented ( $persons[CURRENT_PERSON] += 1 ) After the IF statement the current rowid's Groupid is changed to $persons[CURRENT_PERSON] if that one exists. As result we should get an array $rowids with the Groupid for each array. So simply loop through that array and have the database SET the Groupid somehow like this .. EXAMPLE <?php foreach ($rowids as $row => $group) { echo <<<SQL UPDATE transitional_records SET Groupid = $group WHERE Rowid = $row; SQL; } ?> I hope I could help a little Be more specific next time //A yeti -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php