2011-08-12 80 views
-1

我正在構建一個簡單的拍賣應用程序。我需要拍賣才能在特定時間開始和結束。顯示公開競價的頁面是否應該運行查詢以查找當前時間在開始時間之後和結束時間之前的所有拍賣?或者是否最好有一個腳本將「活動」列設置爲True?如果是這種情況,我必須有一些類型的cronjob設置?使拍賣腳本在特定時間開始和停止拍賣。

+0

歡迎來到StackOverflow!但是,您的問題現在太開放了,無法回答。你問我們你是否「應該」做X,但不是告訴我們你的約束或擔憂是什麼。舉個例子,想象一下,如果有人在街角向你走去,問你:「我現在應該過馬路嗎,還是等30分鐘?」在回答之前,您可能會要求提供更多有關該傢伙目標的信息。 –

回答

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來弄清楚。

+0

在開始之前,請確保您瞭解如何安全地使用php和mysql。 –

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,並設置了在每10秒一次左右的cron(或但是經常一個PHP頁面你需要)。