Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/12/2008, 16:03
mafgalan
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
He revisado las 21 Pag. de este foro y no encuentro mi solucion

Hola a tod@s, soy nuevo en este foro y os mando un saludo y felices fiestas a todos.

He revisado las 21 paginas y no he visto ningun caso que se adapte a mi problema, el cual paso a describiros.

este es mi codigo

mas abajo en rojo es donde no consigo mejorar el codigo

Lo que quiero hacer es sacar los 3 mejores porcentajes de todos los jugadores , donde me pierdo es en el nuevo query que hago a la tabla , si hago una primera consulta a la tabla , se supone que no deberia de volver a hacer un while a la misma tabla, sino a alguna temporal, no se estoy super liado con esta historia, si alguien puede aporta algo , pues muchas gracias y quien no pues tambien muchas gracias.


##################################


$query = "select dni as n1, (select sum(SIGN(p1)+SIGN(p2)+SIGN(p3)+SIGN(p4)+SIGN(p5)+S IGN(p6))
from resultados_jugador
where n1= dni and temporada='$temporada'
and grupo='$grupo' and tipo_liga=$tipoliga) as partidas
from resultados_jugador
where temporada='$temporada'
and grupo='$grupo' and tipo_liga=$tipoliga order by partidas asc ";

$result = mysql_query($query) or die ("Consulta fallida:".mysql_error());
while($row = mysql_fetch_array($result))
{
$maxPart = $row[1];
}
$va =0.5;
$maxPart = round(($maxPart * $va));

aqui es donde se que esta mi error pero no consigo optimizarlo mejor


#############################

$query = "select jugador.nombre, jugador.apellido1, ROUND((select sum(IFNULL(p1,0)+IFNULL(p2,0)+IFNULL(p3,0)+IFNULL( p4,0)+IFNULL(p5,0)+IFNULL(p6,0)+IFNULL(p7,0)) from resultados_jugador where resultados_jugador.dni =jugador.dni and temporada=$temporada and tipo_liga=$tipoliga),2),
(select sum(SIGN(p1)+SIGN(p2)+SIGN(p3)+SIGN(p4)+SIGN(p5)+S IGN(p6)+SIGN(p7)) AS partidas from resultados_jugador where resultados_jugador.dni =jugador.dni and temporada=$temporada and tipo_liga=$tipoliga ),
jugador.dni,
ROUND(ROUND((select sum(IFNULL(p1,0)+IFNULL(p2,0)+IFNULL(p3,0)+IFNULL( p4,0)+IFNULL(p5,0)+IFNULL(p6,0)+IFNULL(p7,0)) from resultados_jugador where resultados_jugador.dni =jugador.dni and temporada=$temporada and tipo_liga=$tipoliga),2)/
ROUND((select sum(SIGN(p1)+SIGN(p2)+SIGN(p3)+SIGN(p4)+SIGN(p5)+S IGN(p6)+SIGN(p7)) from resultados_jugador where resultados_jugador.dni =jugador.dni and temporada=$temporada and tipo_liga=$tipoliga),2),2), ROUND((select SUM(otro) from resultados_jugador where resultados_jugador.dni =jugador.dni and temporada=$temporada and tipo_liga=$tipoliga)/(select SUM(SIGN(otro)) from resultados_jugador where resultados_jugador.dni =jugador.dni and temporada=$temporada and tipo_liga=$tipoliga),2)
from jugador where
(jugador.dni in (select j1 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga) or
jugador.dni in (select j2 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga) or
jugador.dni in (select j3 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga) or
jugador.dni in (select j4 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga) or
jugador.dni in (select j5 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga) or
jugador.dni in (select j6 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga) or
jugador.dni in (select j7 from equipos where temporada='$temporada' and grupo='$grupo' and tipo_liga=$tipoliga)
)
ORDER BY 6 DESC,4 DESC";


se que me he echo la un lio grandisimo, pero como me estoy volviendo ya zumbao , os pido ayuda

//echo $query;
$result = mysql_query($query) or die ("Consulta fallida:".mysql_error());


.................................................


Muchas gracias , cualquier aclaracion mas, os paso mas detalles.