好的,所以每次用户完成任务时我都会尝试奖励累积奖金条目,但是当任务奖励超过一定金额时,我想要发出多个条目。
让我打破这个。
当用户完成奖励0.05美元或更多的任务时,他们会获得1次累积奖金。我想要实现的是这个。当他们完成一个价值0.50美元的任务时,他们会收到额外的1个条目,然后每增加0.25美元,他们就会得到另一个1,所以如果他们完成了价值1.00美元的任务,他们应该总共获得4个条目。 1表示最初的0.05美元,1表示任务价值0.50美元,1表示达到0.75美元,1表示达到1.00美元
我不知道该怎么做。所以我在数据库中进行更新时所拥有的就是这个。
if($offprate >= $rafminp || $offcrate >= $rafminc){
$stmt=$db->prepare("UPDATE accounts SET jackpot_e=jackpot_e+'1' WHERE username = ?");
$stmt->bind_param('s', $username);
$stmt->execute();
}
仅适用于最初的0.15美元
答案 0 :(得分:1)
我觉得太简单了吗?
$amount = 0.5;
$credits = 0;
switch($amount) {
case 0.05: $credits = 1; break;
case 0.50: $credits = 2; break;
case 0.75: $credits = 3; break;
case 1.00: $credits = 4; break;
}
$stmt=$db->prepare("UPDATE accounts SET jackpot_e=jackpot_e+'$credits' WHERE username = ?");
或者甚至可能:
$all_amounts = array(0.05, 0.50, 0.75, 1.00);
$credits = array_search($amount, $all_amounts)+1; # returns -1 when not found
如果您没有确切的值,请将switch语句替换为if-else级联。
重新阅读你的问题,似乎金额没有上限。在那种情况下:
$credits = 0;
if($amount == 0.05)
$credits = 1;
if($amount >= 0.50)
$credits = floor(2+($amount-0.50)/0.25);