Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?
Estou com uma dúvida aqui e não estou conseguindo achar uma solução.
Criei um sistema de sorteio onde corre e salva no banco uma sequências numeral de forma aleatória.
No foreach eu determinei que deverá procurar 5 sequências entre 1 à 10 sem repetir... e caso ele ache no banco, já salvo anteriormente por outro apostador um nº repetido, ele deveria somar + 1 no final do laço e continuar a buscar outro numero até finalizar as 5 sequências. Só que quando ele soma + 1 ele não transfere essa soma para o forech, pois o laço inicia numa linha abaixo.
No trecho abaixo eu simulei um número salvo no banco que seria o "00004" e no loop ele deverá pular esse nº.
Será que consegui passar a minha dúvida?
// GERAR NÚMEROS ALEATÓRIOS
function getRandomNumbers($qnt, $min, $max, $repeat = false, $sort = true,
$sort_order = 0){ if ((($max - $min) + 1) >= $qnt) {
$numbers = array();
while (count($numbers) < $qnt) {
$number = mt_rand($min, $max);
if ($repeat) {
$numbers[] = $number;} elseif (!in_array($number, $numbers)) {
$numbers[] = $number;
}
}
if($sort){switch ($sort_order){
case 0:
sort($numbers);
break;case 1:
rsort($numbers);
break;
}
}
return $numbers;} else {
return 'A faixa de valores entre $min e $max deve ser igual ou superior à ' .
'quantidade de números requisitados'; }}
// Após declará-la:
foreach (getRandomNumbers(5, 1, 10, false, false) as $number){
$number = str_pad($number , 6 , '0' , STR_PAD_LEFT);
// EXIBIR NA TELA DE TESTE OS NÚMEROS PARA SORTEIO
echo " $number<br>";
// $sql = mysqli_query($con, "SELECT * FROM sorteios WHERE num_sorteados='$number'");// while($array = mysqli_fetch_array($sql)){
// $num_sorteados = $array['num_sorteados'];
// }
// TESTE
$num_sorteados = 000004;
//
if($num_sorteados == false or $num_sorteados != $number){
$query = "INSERT INTO sorteios (referencia, num_sorteados) VALUES ('$reference','$number')";
mysqli_query($con, $query) or die (" Erro ao inserir dados sorteados");
}
else
{
$qtde_numeros = $qtde_numeros + 1;
}
}Discussão (8)
Carregando comentários...