J'ai créé un script de loterie en PHP. Mon problème est maintenant de sélectionner plus d'un gagnant. Parce qu'il est possible pour les joueurs d'avoir le même numéro sur leurs tickets. Ici, je fournis les deux structures de table et le code source.Problèmes de loterie PHP plusieurs problèmes gagnant
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)
}
Ce sont mes deux tables avec dans ma base de données. Par exemple, nous allons créer 2 utilisateurs avec les ID 1 et 2. Donc, quand le script s'exécute, il est supposé changer le statut de lotto_game de 'actif' à 'fini' puis ajouter les numéros de loterie aléatoires dans chaque sélection_ * colonne.
$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'
où le statut = « actif » ");..
Ce n'était pas trop dur, je dois admettre Mais cela est juste le début de la fin
$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'");
}
C'est ce que Je suis venu avec et il semble vraiment fonctionner avec un gagnant.Mais je ne peux pas savoir où aller d'ici.J'ai essayé d'utiliser des tableaux mais rien ne fonctionne.Je sais ce qui doit être fait, mais ne peux pas comprendre comment le faire
Lorsque je cherche des gagnants, je dois mettre dans un tableau tous leurs identifiants.
donc des décombres supplémentaires est de l'argent, si quelqu'un est confus à ce sujet. Le statut sur les billets ne compte pas vraiment ici, mais si vous devez savoir juste détermine si le ticket_status est « valide » ou « invalide »
De plus, vous devez supprimer toute la suppression d'erreur que vous utilisez .. L'appel de mysql_fetch_array sur un ensemble de résultats vide avec un rapport d'erreurs désactivé est une mauvaise pratique, vous devriez utiliser des conditions comme dans l'exemple ci-dessus ... – eCaroth
Merci. Je vais regarder dans les conditions. – Jesse