Ben MySQL bir üye tablo var
CREATE TABLE `members` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(65) collate utf8_unicode_ci NOT NULL,
`order` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
And I would like to let users order the members how they like.
I'm storing the order in order
column.
I'm wondering how to insert new user to be added to the bottom of the list. This is what I have today:
$db->query('insert into members VALUES (0, "new member", 0)');
$lastId = $db->lastInsertId();
$maxOrder = $db->fetchAll('select MAX(`order`) max_order FROM members');
$db->query('update members
SET
`order` = ?
WHERE
id = ?',
array(
$maxOrder[0]['max_order'] + 1,
$lastId
));
Aynı zamanda yeni üye ekleme birçok kullanıcı olduğunda, bu MAX(order)
aynı değerleri dönecektir meydana gelebilecek süre Ama bu gerçekten kesin değil.
Nasıl böyle durumlarda ele?