-1
votes

PHP ECHO Tableau aléatoire et insérer à la base de données sans répéter

J'ai un code pour faire rouler un numéro de Rand et montrer le gagnant en fonction de leur chance.

=========================================
id  |  Round  |  first |  Second  | third
=========================================
1   |    1    |   4    |    3     |   1
=========================================


4 Réponses :


0
votes

Changer votre code avec

for($i=0;$i<2;$i++)
{
  chance($getAllUserTicketHistoryJson[rand(0,count($getAllUserTicketHistoryJson))]).'<br><br>';
}
function chance($arrWinner = array()){
 // the array for winner is
echo "<pre> Winner array : ";
print_r($arrWinner);
echo "</pre>";
}


3 commentaires

où vous obtenez $ arrwinner string? Le mien est $ entrée


essayez la modifiée ... et en $ arrwinner, vous obtiendrez un tableau pour le gagnant ... Utilisez ce code et vous obtiendrez seulement 3 tableau ... Jouer avec elle ... amusez-vous


Obtenu cette notification d'erreur: Offset non défini: 4 dans et dans la matrice de pré-gagnant:



0
votes
for($i=0;$i<2;$i++)
{
  chance($getAllUserTicketHistoryJson[rand(0,count($getAllUserTicketHistoryJson))]);
}
function chance($arrWinner = array()){
 // the array for winner is
echo "<pre> Winner array ";
print_r($arrWinner);
echo "</pre>";
}
try this... and if there is an errer... then let me know ... or add screen short of error if possible 

1 commentaires

AVIS: Décalage indéfini: 4 en C: \ Xampp \ htdocs \ ... sur la ligne 75 gagnante gagnante, la ligne 75 est une chance ($ getallusertiketoryjson [rand (0, comptage ($ getAlusser Tickethistoryjson))])];



0
votes
<?php

$ticket_numbers = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);

shuffle($ticket_numbers);

$number_winners_required_per_round = 5;
$winner_count = 0;
$number_of_rounds = 3;
$round_number = 0;

while ( $round_number < $number_of_rounds) {
    $round_number++;
    echo "Round $round_number:";

    while ($winner_count < $number_winners_required_per_round ) {
        $winner[$winner_count] = array_pop($ticket_numbers);
        echo "<p>The winning ticket number $winner_count is ticket number: {$winner[$winner_count]}</p>";
        $winners[$round_number][] = $winner[$winner_count];
        $winner_count++;
    }
    $winner_count = 0;
}
var_dump($winners);
?>
$ticket_numbers will be filled from the JSON feed. Each time the main loop is run, the required number of winners are picked, their ticket numbers are removed from the list of potential winners. An array of winners is generated which will be used for entering the winners into the database. Each ticket can only win once.

1 commentaires

Belle part, pouvez-vous ajouter une chance là-bas? parce que mon code utilise user_id et leur chance, la sortie $ de données comme ceci $ TRAY = Array = tableau ('Black' => 15.30, 'Brown' => 20.20, 'Lala' => 15.20, Popi '=> 14.00,' Usher '=> 20.00);



0
votes

Je ne serai pas exactement précis avec ce que vous avez déjà demandé, mais vous donner une approche alternative comment résoudre le problème. Permet de reporter la chance d'abord comme une seule entité et renommez votre billet. Chaque billet a une chance unique et égale à être sélectionnée dans chaque tour.

Disons que vous avez vendu 100 billets à la loterie X. La loterie donnée est composée de 5 rounds p> xxx pré >

Si vous avez besoin de comparer les chances qu'un joueur possède un certain nombre de billets, il s'agit d'un jeu de données différent à la récupération de votre base de données. Cela nécessiterait une table supplémentaire qui détient ces données, mais il ne faut pas "cuisiner" les chances d'un billet d'apparition. Si vous avez besoin de cette statistique ici est un exemple (en PHP) p> xxx pré>

qui entraînerait un total de p> xxx pré>

Retour au problème initial. Vous avez maintenant un total de billets code> code> et chaque loterie a 5 tours. Ainsi, p> xxx pré>

temps pour modifier l'écho avec quelque chose que vous pourrez stocker dans votre DB en une seule fois. Je vais donc réécrire la dernière partie de la clarté. NOTE FORT> Etant donné que c'est un exemple simple et que vous contrôlez que vous contrôlez, vous pouvez ajouter ceci à votre base de données sans filtrage. P>

$rounds = 1;
$maxRounds  = 5;

$insert = [ ];

while( $rounds <= $maxRounds )
{
    $winners = array_rand( $tickets, 3 );
    $tickets = array_diff( $tickets, $winners );
    shuffle( $winners );

    $insert[$rounds][ ] = $rounds;

    foreach( $winners as $winner )
    {
        $insert[$rounds][ ] = $winner;
    }

    $insert[$rounds] = '(' . implode( ',', $insert[$rounds] ) . ')';

    ++$rounds;
}

$sql    = sprintf( "INSERT INTO `lotteries`( `round`, `first`, `second`, `third` ) VALUES %s;", implode( ', ', $insert ) );


0 commentaires