Нет cron и «активный» столбец не требуется. Просто перечислите аукционы, используя что-то вроде:
select *
from auctions
where
start < now()
and end > now()
Когда пользователь делает ставку, используйте следующее:
update auctions set
bid = $bid,
highest_bidder = $bidding_user_id
where
id = $this_auction_id
and start < now()
and end > now()
and bid < $bid
Затем проверьте, повлиял ли запрос на строку. Если да - ставка успешна, текущий пользователь является самой высокой. Если нет - ставка слишком низкая или аукцион завершен. Вы можете выяснить это позже, снова загрузив строку аукциона и проверив идентификатор участника.