Foros del Web » Programando para Internet » PHP »

He revisado las 21 Pag. de este foro y no encuentro mi solucion

Estas en el tema de He revisado las 21 Pag. de este foro y no encuentro mi solucion en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/12/2008, 16:03
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 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.
  #2 (permalink)  
Antiguo 30/12/2008, 16:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: He revisado las 21 Pag. de este foro y no encuentro mi solucion

Tema trasladado a PHP.

http://www.forosdelweb.com/f21/funci...-datos-413499/
  #3 (permalink)  
Antiguo 30/12/2008, 16:54
Avatar de Stickmaster2004  
Fecha de Ingreso: septiembre-2004
Ubicación: Barranquilla
Mensajes: 568
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: He revisado las 21 Pag. de este foro y no encuentro mi solucion

te aconsejo que vallas haciendo tu consulta paso a paso y vas viendo donde esta ocurriendo el error, en donde al incluir tal subsonsulta es donde te esta arrojando el error, depronto es por que no estas tomando una variable bien que viene de la anterior pagina o puede ser por el tipo de dato que estas manejando en la base de datos contra el cual estas comparando tu consulta en php.

bueno en resumen analiza paso a paso la consulta grandisima que tienes y vas probando en php y leugo en la base de datos y donde comience a mostrar error, he alli donde tienes que hacer la correcion.
__________________
Solo el que se basa en conocimiento basico y cultiva el aprendizaje obtendra sabiduria
  #4 (permalink)  
Antiguo 03/01/2009, 17:02
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: He revisado las 21 Pag. de este foro y no encuentro mi solucion

Gracias Stickmaster2004,

no consigo verlo

a ver, tengo dos tablas , jugadores, y resultados_jugador, con los puntos conseguidos, de esa tabla tengo que sacar la media de todos los jugadores,partidas jugadas y puntod, creo que me lio con los sum y debe de haber algo mas rapido , porque me da tiempo de espera agotado, y aunque optimice mysql, se me queda frito

saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:06.