mysql_insert_id в помощь. (Добавление)
При добавлении записи в одну таблицу, можно добавить запись в другую таблицу с этим же автоматически сгенерированным id. (Добавление)
В первой таблице, соответственно, поле id должно быть auto_increment.
Cookie - это тоже элемент http-заголовка и его никак нельзя отправить после отправки страницы. Для избежания связанных с этим проблем, обычно используют буферизацию вывода. А проверять, установилась кука или нет, я бы стал не ретурном setcookie, а последующим выводом устанавливаемого значения cookie.
В целом да. А для подсчета строк не надо перебирать все строки? В общем, как я уже сказал, это выгодно только когда помимо подсчета также есть и выборка данных.
Мелкий пишет:
И count считается уже после наложения всех условий.
Да. Но при выборке без условий он и вовсе не считается, т.к. значение количества всех строк уже хранится в базе. Поэтому этот вариант самый скоростной.
Товару, понятно, статус "reserved" надо снять. Как вот это снимание прикрутить к session_destroy?
А как выполнится session_destroy, если пользователь уже ушел с сайта?
Игель пишет:
Т.е. так, чтобы после смены статуса товара выполнялся себе дальше "родной" session_destroy
Вообще запутали! Какое действие должно привести к смене статуса товара? Закрытие окна браузера?
В общем, судя по всему, вы ушли не в тот лес. Вам просто нужен скрипт, который будет сравнивать временную метку резервирования товара с текущим временем и если оно превышено, то возвращать статус на исходную. При каждой активности пользователя эта метка обновляется. Т.о. при неактивности пользователя, скажем 20 мин, вся его корзина разрезервируется.