Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/05/2008, 04:53
falotron
 
Fecha de Ingreso: septiembre-2006
Mensajes: 68
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Consulta MySQL -> No devuelve todo lo que quiero!

Cita:
Iniciado por DarkJ Ver Mensaje
Puede ser que dentro del bucle estes pisando el valor de la variable $result , por ejemplo al hacer la otra consulta la guardas en $result otra vez. Tipico fallo de copiapega.
Llevas mucha razón... Era éso
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
##