2012-12-01 1 views
0

Ok, donc j'essaie d'attribuer des entrées de jackpot chaque fois qu'un utilisateur termine une tâche, mais je veux donner plus d'une entrée quand la tâche attribue plus d'un certain montant.Donner une nouvelle quantité de quelque chose quand elle est supérieure à un montant défini

Permettez-moi de décomposer.

Lorsqu'un utilisateur termine une tâche qui rapporte 0,05 $ ou plus, il reçoit 1 entrée dans le jackpot. Ce que j'essaye de réaliser est ceci. Quand ils accomplissent une tâche qui vaut 0,50 $, ils reçoivent une entrée supplémentaire et ensuite pour chaque 0,25 $ de plus, ils en obtiennent un autre 1, donc s'ils achèvent une tâche d'une valeur de 1,00 $, ils devraient obtenir un total de 4 entrées. 1 pour les 0,05 $ initiaux, 1 pour la tâche valant 0,50 $, 1 pour atteindre 0,75 $, et 1 de plus pour atteindre 1,00 $

Je ne sais pas trop comment faire. Donc, tout ce que j'ai quand il s'agit de mettre à jour dans la base de données est la suivante.

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(); 
} 

qui est juste pour la première 0,15

Répondre

1

$ Suis-je pense aussi simple?

$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 = ?"); 

Ou peut-être même:

$all_amounts = array(0.05, 0.50, 0.75, 1.00); 
$credits = array_search($amount, $all_amounts)+1; # returns -1 when not found 

Si vous ne disposez pas des valeurs exactes, remplacer l'instruction switch avec une cascade if-else. Relecture de votre question, il semble que le montant n'a pas de limite supérieure


Dans ce cas:

$credits = 0; 
if($amount == 0.05) 
    $credits = 1; 
if($amount >= 0.50) 
    $credits = floor(2+($amount-0.50)/0.25); 
+1

Vous pourriez vouloir vérifier votre affirmation '# pas besoin de pause ;, il ne peut y avoir un match' – Crisp

+0

@Crisp: vous êtes tout à fait raison! embarrassant ... – knittl

+0

Merci beaucoup cela devrait fonctionner magnifiquement! – kira423

Questions connexes