I guess I left insert/update out.
The database table needs to include a sorting column obviously. I use "sortorder" Joomla! for example uses ordering. Just remember "order" is a reserved word.
For updates, just don't change the field.
For inserts, what you need is a recordset with this SQL: "SELECT (MAX(mysortcolumn)+1) AS num FROM mytable"
The resulting recordset row field ("num") will be the increment value you want to insert into the new record.
If you have concerns about multiple people making edits at the same time, you need to implement some for of record locking scheme not addressed here.
I'm going to refer to 2 approaches you can take, the second being better if multiple users maybe making changes, but that does not solve your problem without a record locking scheme because someone updating a record can conflict with someone resorting the records.
Method 1, submit the recordset mentioned above as a hidden value and use it for your sort column value on the insert transaction.
Method 2, insert the new record allowing no value for the sort column. It should default to 0. create the recordset for the new increment value after the insert, and add an update transaction using the session value set by the insert transaction to identify the record id and the new recordset as the value of the sort column.
The second method is a couple more steps and perhaps some hand coding, but it minimizes the time from insert to setting the sorting column's value.