![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
02/05/2008, 04:58
|
| | Fecha de Ingreso: enero-2008
Mensajes: 63
Antigüedad: 17 años Puntos: 0 | |
Re: Consulta MySQL -> No devuelve todo lo que quiero! Cita:
Iniciado por falotron Llevas mucha razón... Era éso ![Aplauso](http://static.forosdelweb.com/fdwtheme/images/smilies/aplausos.gif)
Muchas gracias!
Ahora... una vez superado el primer escollo, viene el 2º problema
En la tabla, como comentaba, hay varios registros por cada usuario, y lo que me interesa a mí es que para cada usuario el bucle se ejecute 1 sola vez
¿Cómo lo podría hacer?
Por si ayuda muestro la página
http://www.falotron.com/modules.php?name=stakes_testing&file=usuario
Y el código entero
Código:
##
## Vamos recogiendo usuario a usuario
##
$consulta = "SELECT * FROM apuestas_OK ORDER BY usuario ASC";
$resultado = $db->sql_query($consulta);
while ($row = $db->sql_fetchrow($resultado)) {
$usuario=$row['usuario'];
##
## Recogemos el nº total de stakes
##
$sql = "SELECT usuario, procesada FROM apuestas_OK WHERE (usuario = '$usuario')";
$result = $db->sql_query($sql);
echo "<tr><td><b>$usuario</b></td>";
$cuento = mysql_num_rows($result);
echo "<td><font color=\"blue\">$cuento</font></td>";
##
## Recogemos el nº total de stakes > 2.99 + el Stake Medio en Apuestas Acertadas
##
$acertadas_ok = "SELECT stake FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '2') AND (stake > '2.99') ";
$result = $db->sql_query($acertadas_ok);
$cuento1 = mysql_num_rows($result);
echo "<td><font color=\"green\"><b>$cuento1</b></font> ";
$acertadas_ok_avg = "SELECT AVG(stake) FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '2') AND (stake > '2.99') ";
$result = $db->sql_query($acertadas_ok_avg);
$row = $db->sql_fetchrow($result);
$stake_medio1 = $row['AVG(stake)'];
echo "(<I>";
echo round($stake_medio1, 2);
echo "</I>)</td>";
##
## Recogemos el nº total de stakes < 3 + el Stake Medio en Apuestas Acertadas
##
$acertadas_ko = "SELECT stake FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '2') AND (stake < '3.00') ";
$result = $db->sql_query($acertadas_ko);
$cuento2 = mysql_num_rows($result);
echo "<td><font color=\"red\"><b>$cuento2</b></font> ";
$acertadas_ko_avg = "SELECT AVG(stake) FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '2') AND (stake < '3.00') ";
$result = $db->sql_query($acertadas_ko_avg);
$row = $db->sql_fetchrow($result);
$stake_medio2 = $row['AVG(stake)'];
echo "(<I>";
echo round($stake_medio2, 2);
echo "</I>)</td>";
##
## Recogemos el nº total de stakes < 3 + el Stake Medio en Apuestas Falladas
##
$falladas_ok = "SELECT stake FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '3') AND (stake < '3.00') ";
$result = $db->sql_query($falladas_ok);
$cuento3 = mysql_num_rows($result);
echo "<td><font color=\"green\"><b>$cuento3</b></font> ";
$falladas_ok_avg = "SELECT AVG(stake) FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '3') AND (stake < '3.00') ";
$result = $db->sql_query($falladas_ok_avg);
$row = $db->sql_fetchrow($result);
$stake_medio3 = $row['AVG(stake)'];
echo "(<I>";
echo round($stake_medio3, 2);
echo "</I>)</td>";
##
## Recogemos el nº total de stakes > 2.99 + el Stake Medio en Apuestas Falladas
##
$falladas_ko = "SELECT stake FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '3') AND (stake > '2.99') ";
$result = $db->sql_query($falladas_ko);
$cuento4 = mysql_num_rows($result);
echo "<td><font color=\"red\"><b>$cuento4</b></font> ";
$falladas_ko_avg = "SELECT AVG(stake) FROM apuestas_OK WHERE (usuario = '$usuario') AND (procesada = '3') AND (stake > '2.99') ";
$result = $db->sql_query($falladas_ko_avg);
$row = $db->sql_fetchrow($result);
$stake_medio4 = $row['AVG(stake)'];
echo "(<I>";
echo round($stake_medio4, 2);
echo "</I>)</td>";
##
## Se calcula el Coeficiente del peñista, según sus stats de stakes
##
$coef1 = $cuento1*$stake_medio1;
$coef2 = $cuento2*$stake_medio2;
$coef3 = $cuento3*$stake_medio3;
$coef4 = $cuento4*$stake_medio4;
echo "<td>";
echo $coef1-$coef2+$coef3-$coef4;
echo "</td>";
echo "</tr>";
}
##
## Cerramos la Tabla
##
al seleccionar el usuario hazlo con el DISTINCT |