我在php中創建了一個彩票腳本。我的問題是現在選擇多個贏家。因爲玩家可以在他們的門票上使用相同的號碼。在這裏,我提供了兩個表結構和源代碼。Php彩票問題多贏家問題
lotto_game {
id(int)
jackpot(int)
status(varchar10)
pick_1(int)
pick_2(int)
pick_3(int)
pick_4(int)
pick_5(int)
tickets_sold(int)
winner(text)
}
lotto_picks {
lotto_id(int)
user_id(int)
choice_1(int)
choice_2(int)
choice_3(int)
choice_4(int)
choice_5(int)
ticket_status(int)
}
這些是我在我的數據庫中的兩個表。舉例來說,我們將創建2個用戶,其id爲1和2.那麼發生的情況是,當腳本運行時,它會將lotto_game狀態從'active'更改爲'finished',然後將隨機抽獎號碼添加到每個pick_ *柱。
$one = rand(1,30);
$two = rand(1,30);
$three = rand(1,30);
$four = rand(1,30);
$five = rand(1,30);
mysql_query("UPDATE `lotto_game` SET
pick_1 = '$one',
pick_2 = '$two',
pick_3 = '$three',
pick_4 = '$four',
pick_5 = '$five',
status = 'finished'
WHERE狀態=「積極」「);
這是不是太硬,我會承認,但是,這是年底纔剛剛開始
$lotto['tickets'] = mysql_query("SELECT ticket_id FROM `lotto_picks` WHERE ticket_status='valid'");
@$lotto[winners] = mysql_query("SELECT ticket_id,user_id FROM `lotto_picks` WHERE choice_1 = '$one' AND choice_2 = '$two' AND choice_3 = '$three' AND choice_4 = '$four' AND choice_5 = '$five'");
$lotto['num_tickets'] = mysql_num_rows($lotto['tickets']);
@$lotto[winner_id] = mysql_fetch_array(@$lotto[winners]);
$lotto['jackpot'] = mysql_query("SELECT jackpot FROM `lotto_game` WHERE status='active'");
$lotto['winner_jackpot'] = mysql_fetch_array($lotto['jackpot']);
$lotto['num_winners'] = mysql_num_rows($lotto['winners']);
//echo @$lotto['num_tickets'];
//echo @$lotto['num_winners'];
$winner = $lotto['num_winners'];
//echo @$lotto['winner_id']['user_id'];
$jackpot = $lotto['winner_jackpot']['jackpot'];
$id = @$lotto[winner_id][user_id];
if ($winner == 1) {
mysql_query("UPDATE `character` SET
decivers = decivers +'$jackpot'
WHERE user_id='$id'");
}
這是什麼我已經想出了,它似乎真的和一個贏家一起工作,但我不知道從哪裏開始,我嘗試過使用一些數組,但是沒有任何工作,我知道需要做什麼但是無法弄清楚怎麼辦
當我搜索優勝者時,我需要將所有用戶ID都放入數組中。
所以額外的解決方案就是金錢,如果有人對此感到困惑。在門票的狀態其實並不重要,在這裏,但如果你一定要知道它只是確定是否ticket_status是「有效」或「無效」
此外排序,您應該刪除您正在使用的所有錯誤抑制.. 。在關閉錯誤報告的空結果集上調用mysql_fetch_array是不好的做法,你應該使用如上例中的條件... – eCaroth
謝謝。我將研究條件。 – Jesse