Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
>
Amigos,
Tenho a tabela QUINA com 5 colunas: um, dois, tres, quatro e cinco.
Nela tenho mais de 3100 linhas com resultados dessa loteria.
Usando $contar = mysql_num_rows($seleciona); conto quantas vez a dezena 10 (por exemplo) foi sorteada.
Qual é a minha dificuldade?
QUERO CONTAR QUANTAS VEZES 10 apareceu nos últimos 30 sorteios apenas, desconsiderando os demais.
Não estou conseguindo criar uma condição para essa finalidade.
Alguém pode me indicar o caminho?
Meu SQL é assim:
$numero = '10';
$seleciona = mysql_query("SELECT * FROM quina
WHERE (um IN ('$numero')) or
(dois IN ('$numero')) or
(tres IN ('$numero')) or
(quatro IN ('$numero')) or
cinco IN ('$numero'))");
Minha contagem do total é iniciada assim:
$contar = mysql_num_rows($seleciona);
Ricardo, LIMIT 0,30 não funciona. O SQL interpreta que é limite para a QUANTIDADE de dezenas e não para o NÚMERO DE LINHAS. Já tentei e não funciona.
Boa tarde,
Você quer uma paginação de registros de 30 em 30 para uma quantidade X? Seria isso?
Caso positivo - Clique aqui
Espero que ajude.
Não, Ângelo. Quero exibir quantas vezes uma determinada dezena (no caso, acima, 10) apareceu nos últimos 30 concursos da Quina. Se eu uso LIMIT, como sugeriu o Ricardo, o que acaba limitado é quantidade de dezenas e não de linhas como eu preciso. Obrigado.
funciona se aplicar subquery..
Hinom, obrigado. Vou pesquisa. Meu conhecimento nesse tema é precário.
Ainda não consegui resolver o problema.
poste o que tentou fazer.. não espere que alguém faça o SEU trabalho
Do modo como está abaixo, Hinom, funciona perfeitamente, se for para contar a quantidade de eventos da dezena 10 entre todos os registros. Como disse, no entanto, preciso LIMITAR o total de linhas abrangidas pela consulta 30, para saber quantas vezes a dezena 10 apareceu nos últimos 30 concursos somente. É a partir deste momento que estou encontrando dificuldades, porque, em verdade, não nem por onde começar para ir à frente. Abraço.
<?php include("../config.php");
$numero = '10';
$seleciona = mysql_query("SELECT * FROM quina
WHERE (um IN ('$numero')) or
(dois IN ('$numero')) or
(tres IN ('$numero')) or
(quatro IN ('$numero')) or
(cinco IN ('$numero'))");
if($seleciona == ''){
echo "Erro";
}else{
while($res_id = mysql_fetch_array($seleciona)){
$um = $res_id['um'];
$dois = $res_id['dois'];
$tres = $res_id['tres'];
$quatro = $res_id['quatro'];
$cinco = $res_id['cinco'];
}
}
echo "<table width='40' border='0' cellspacing='0' cellpadding='0' bgcolor='#CCCCCC'>
<tr>
<td align='center' class='bg'><span class='numeros'>$numero</span></td>
</tr>";
$contar = mysql_num_rows($seleciona);
if($contar == '0'){
echo "<tr>
<td align='center'><sub><font color='red'>0</font></sub></td>
</tr>
</table>";
}else{
echo "<tr>
<td align='center'><sub><font color='red'>$contar</font></sub></td>
</tr>
</table>";
}
?>ok, relendo os posts anteriores novamente e as sugestões dos colegas, na verdade não entendi muito bem o que vc deseja.
sugeriram paginação, eu tb sugeriria, mas vc comentou que não é isso..
se colocar somente o limit, vc tb comentou que não satisfaz..
Então, bservando o post #3,
Ricardo, LIMIT 0,30 não funciona. O SQL interpreta que é limite para a QUANTIDADE de dezenas e não para o NÚMERO DE LINHAS. Já tentei e não funciona.
Acho que o que vc quer fazer é limitar tipo uma paginação e obter também o total de linhas, certo ?
Então acho que bastaria aplicar uma segunda query ou executar essa segunda query como uma subquery
Exemplo,
SELECT
a,
b,
(SELECT COUNT(a) FROM foo WHERE a = 1) as _total
FROM foo WHERE a = 1
LIMIT 0, 30
acho que é isso...
amigo no caso para pegar os ultimos 30 regitros use LIMIT 0,30 e para fazer o calculo pode ser usado case.
da uma olhadinhas nestes link's
http://dev.mysql.com/doc/refman/5.0/en/case.html
http://forum.imasters.com.br/topic/489359-contar-valores-iguais-de-varias-colunas/?hl=%2Bmysql+%2Bcase#entry1945247