add($group_id)
- Code: Select all
UPDATE phpbb_groups
SET group_teampage = MAX(group_teampage) + 1
WHERE group_id = $group_id
AND group_teampage = 0
GROUP BY group_id
I've added the "AND group_teampage = 0" to ensure you can only add groups where group_teampage is not already enabled.
delete($group_id)
- Code: Select all
$db->sql_transaction('begin');
UPDATE phpbb_groups g1, phpbb_groups g2
SET g1.group_teampage = g1.group_teampage - 1
WHERE g1.group_teampage > g2.group_teampage
AND g2.group_id = $group_id
AND g2.group_teampage <> 0
UPDATE phpbb_groups
SET group_teampage = 0
WHERE group_id = $group_id
$db->sql_transaction('commit');
move_up($group_id) and move_up($group_id) is basically swapping two integers. You have to ensure you're not at the bottom or top there. Transactions should also be used there.
Not sure if the "UPDATE phpbb_groups g1, phpbb_groups g2" works on all DBMSes.



