Boa tarde!
Dando uma olhada geral aqui, realmente achei a organização do BD proposta pelo Frank melhor, pois os números sorteados ficam em um campo com uma estrutura de array ex: [10,12,22,44,45,59], o que facilita um pouco na organização e na codificação.
Mas tentando ajudar na estrutura original, nessa consulta SQL
'SELECT * FROM sorteio WHERE Dez1 = :d1 AND Dez2= :d2 AND Dez3= :d3 AND Dez4= :d4 AND Dez5= :d5 AND Dez6= :d6'
supondo que :d1 :d2 :d3 :d4: d5 :d6 já esteja na ordem crescente, caso um jogo já esteja no BD ele será encontrado, basta para isso verificar se retornou algo ou não (que pelo que eu entendi era onde estava dando erro)
Podemos mudar o select para
'SELECT count(*) as resultado FROM sorteio WHERE Dez1 = :d1 AND Dez2= :d2 AND Dez3= :d3 AND Dez4= :d4 AND Dez5= :d5 AND Dez6= :d6'
e para simplesmente somar o a quantidade de consultas similares. Neste caso se o resultado for maior que zero então quer dizer que o jogo consultado já estava na lista do BD
aí neste trecho (ORIGINAL):
if (!ja_existe($jogos, $stmt)) {
$jogos[] = $sorteio;
echo "<pre>";
print_r($jogos);
// exit;
// echo "Esse jogo não existe: " .implode(', ', $sorteio). "<br>\n";
break;
}else{
echo "Esse jogo já existe: " .implode(', ', $sorteio). "<br>\n";
}
mudaria para
if ($dezenas['resultado']==0) {
$jogos[] = $sorteio;
echo "<pre>";
print_r($jogos);
// exit;
// echo "Esse jogo não existe: " .implode(', ', $sorteio). "<br>\n";
break;
}else{
echo "Esse jogo já existe: " .implode(', ', $sorteio). "<br>\n";
}
Como pode ver mudaria somente a 1a. linha, que é a comparação. Não estou acostumado com mysqli mas acredito que para ver o 'resultado' seja dessa forma $dezenas['resultado']
Se resultado == 0 ($dezenas['resultado']==0) quer dizer que não achou nenhum registro
Por favor me corrijam qualquer coisa, afina isso aqui é forum e só estou tentando ajudar