- 1
- 2
- 3
$Qstatus = $osC_Database->query('select max(cms_id) as cms_id from cms');
$Qstatus->execute();
$cms_id = $Qstatus->valueInt('cms_id') + 1;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
$Qstatus = $osC_Database->query('select max(cms_id) as cms_id from cms');
$Qstatus->execute();
$cms_id = $Qstatus->valueInt('cms_id') + 1;
Код в OSCommerce использующийся для увеличения id на 1.
Int 07.04.2011 17:11 # 0
RaZeR 07.04.2011 17:28 # +2
guest 07.04.2011 17:28 # −1
guest 07.04.2011 19:13 # 0
Суть в том, что на cms_id стоит autoincrement. И если вы случайно добавляете строку в конец таблицы, потом ой, удалите ее, то id все равно уже на единицу прыгнет. А вот таким способом как приведен в коде это пытаются побороть.
ИМХО.
bugmenot 07.04.2011 19:23 # +1
sectus 08.04.2011 01:49 # 0
И, блин, я боюсь представить что делается после того, как удалится что-то в середине.
hidespb 08.04.2011 09:13 # 0
UPDATE table SET id = id -1 WHERE id > $deleted_id ORDER BY id
sectus 08.04.2011 09:17 # 0
hidespb 08.04.2011 09:21 # 0
просто предположил как происходит delele в этой системе :)
sectus 08.04.2011 09:33 # 0
Lure Of Chaos 08.04.2011 10:41 # 0
sectus 08.04.2011 11:19 # 0
eth0 08.04.2011 19:37 # 0
bugmenot 08.04.2011 20:54 # 0
sectus 09.04.2011 02:26 # 0
Int 11.04.2011 10:00 # 0
guest 08.04.2011 20:42 # 0
Говнокод действительно служит заменой auto_increment, а таблица cms хранит статьи.