制作拍卖脚本在特定时间开始和停止拍卖。

时间:2011-08-12 21:16:21

标签: php mysql cron

我正在构建一个简单的拍卖应用程序。我需要在特定时间开始和结束拍卖。显示公开拍卖的页面是否应该运行查询以查找当前时间在开始时间之后和结束时间之前的所有拍卖?或者,它会更好地设置一个将“活动”列设置为True的脚本?如果是这种情况,我是否必须设置某种类型的cronjob?

2 个答案:

答案 0 :(得分:2)

不需要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

然后检查查询是否影响了一行。如果是 - 出价成功,则当前用户是出价最高者。如果不是 - 出价太低或拍卖已经结束。稍后您可以通过再次获取拍卖行并检查投标人ID来确定。

答案 1 :(得分:0)

只需在拍卖中在mysql表中设置“close_time”字段即可。添加行时,使用time() + whatever填充该字段以将close_time设置为代表未来的某个点。

然后设置一个运行简单查询的脚本:

'UPDATE auctions_table SET active = FALSE WHERE active = TRUE AND close_time <= UNIX_TIMESTAMP()'

将该查询保存到名为close_active_auctions.php之类的php页面,然后每隔10秒左右在cron上设置一次(或者经常需要)。