Ir para conteúdo

André Monjardim

Members
  • Total de itens

    28
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre André Monjardim

Informações Pessoais

  • Sexo
    Masculino

Contato

  • Facebook
    https://www.facebook.com/andremonjardim
  1. André Monjardim

    Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?

    Fiz o proprio mysql escolher e salvar os dados do participante. Assim quando houver rodar novamente ele irá pular os dados cadastrados. Nessa trecho eu criei no banco com o nome "sequencia" com um número fixo de linhas (999999) nº máximo do sorteio da Loteria Federal. <?php include "config.php"; $i = 1; while($i<= 999999){ $query = "INSERT INTO sequencia (referencia) VALUES ('')"; mysqli_query($con, $query) or die (" Erro ao inserir dados"); echo "$i<br>"; $i++; } ?> Abaixo eu peguei a resposta do pagseguro que diz que o pagamento foi aprovado e fiz o sisteminha rodar os números pra sorteio e já indo salvando o nome e a referência do participante... essa referência consta tb no pagseguro, email, etc. <?php $sql1 = mysqli_query($con, "SELECT * FROM sequencia WHERE referencia='$reference'"); $num_reg = mysqli_num_rows($sql1); if($num_reg == 0){ // GERAR NÚMEROS ALEATÓRIOS $sql2 = mysqli_query($con, "SELECT * FROM sequencia WHERE referencia='' ORDER BY rand() LIMIT $qtde_numeros"); while($busca = mysqli_fetch_array($sql2)){ $number = $busca['numero']; $number = str_pad($number , 6 , '0' , STR_PAD_LEFT); // testar numero na tela // echo "$number<br>"; // $data_hora = date("Y-m-d H:i:s"); $alterar = "UPDATE sequencia SET referencia = '$reference', comprador = '$comprador', data_compra = '$data_hora' where numero = '$number'"; mysqli_query($con, $alterar) or die ("Erro ao alterar dados"); } } // FIM DO SORTEIO ?> E para enviar os nº para o email do participante eu montei dentro do corpo do email o trecho abaixo $sql = mysqli_query($con, "SELECT * FROM sequencia WHERE referencia='$reference'"); while($array = mysqli_fetch_array($sql)){ $numero_email = $array['numero']; $numero_email = str_pad($numero_email , 6 , '0' , STR_PAD_LEFT); $email_conteudo .= " [ $numero_email ] "; } Pronto!! Tudo testado e aprovado!!
  2. André Monjardim

    Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?

    Já consegui aqui... vou fazer mais uns testes e deixar aqui pra quem quiser. Mas obrigado pela disposição!
  3. André Monjardim

    Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?

    Já consegui aqui... vou fazer mais uns testes e deixar aqui pra quem quiser. Mas obrigado pela disposição!
  4. André Monjardim

    Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?

    Pelo str_pad() comportamento de s também. Vamos voltar ao antigo estábulo sprintf().
  5. André Monjardim

    Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?

    Não consegui concluir... na verdade o que preciso é achar um local pra essa procura do loop no banco de participantes anteriores para nunca haver duplicidade de números. Tô aqui quebrando a cabeça, mas tenho pouco conhecimento ainda. Quem puder me ajudar com esse código, será bem vindo!
  6. André Monjardim

    Alguém poderia me auxiliar pra fazer um loop com foreach para um sorteio?

    Tô fazendo uma gambiarra aqui e acho que vou conseguir.. já posto o que fiz! Mas obrigado!
  7. 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; } }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.