в бд есть таблица с записями - юзер, что_покупает, начальная цена, конечная цена, количество ставок.
При сабмите вызывается функция:
Вытаскиваем всю таблицу по айдишнику того что покупаем, все это засовываем в массив, и пошли - если этот пользователь сейчас не обладатель лота и текущая цена выше начальной и меньше конечной - отнимаем одну ставку у этого пользователя, пишим историю, увеличиваем цену. переходим к следующей строчке в таблице.
Так должно происходить пока не останется пользователь с самым большим количеством ставок. (но в историю надо обязательно записывать порядок(такой то юзер увеличил ставку, следом за ним еще один, потом опять он и тп)).
Как тут быть?
Уже написал несколько совершенно безумных вариантов, но что-то они мне совсем не нравятся - сильно много обращений к бд, должен быть какой-то более оптимальный метод. Хотелось бы услышать ваше мнение..