Foros del Web » Programando para Internet » PHP »

Comparar un campo misma tabla

Estas en el tema de Comparar un campo misma tabla en el foro de PHP en Foros del Web. Hola buenas a tod@s otra vez. Primero agradecer la ayuda que muestra este foro, la verdad que es muy importante contar con gente como la ...
  #1 (permalink)  
Antiguo 12/08/2011, 18:43
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 2 meses
Puntos: 0
Comparar un campo misma tabla

Hola buenas a tod@s otra vez. Primero agradecer la ayuda que muestra este foro, la verdad que es muy importante contar con gente como la que hay por aqui.

Voy a contaros mi problema (bueno alguno de ellos, la verdad que he solucionado muchos por vosotros).

Estoy trabajando para crear una pequeña aplicacion deportiva. Actualmente tengo dos tablas creadas: partidos y clasificacion.

Os pongo el ejemplo, como necesitaria que se mostrara y lo que tendria que hacer.

Tabla clasificacion
Barcelona 3puntos
Betis 3puntos
Madrid 3puntos
Osasuna 1punto
Bilbao 1puntos

Tabla partidos
Betis 2 - Barcelona 3
Madrid 1 - Levante 0
Valencia 3 - Mallorca 1
Bilbao 3 - Osasuna 3

Lo que necesito es que a la hora de mostrar la clasificacion me la ordene por esto:
1) por puntos ya lo tengo hecho
2) El problema lo tengo aquí: En caso de estar empatados necesito a) saber que equipos tienen los mismo puntos...siguiendo el ejemplo sería por un lado los que tienen 3 puntos y por otro los que tienen 1, b) tengo que crear una consulta hacia la tabla partidos indicando que me muestre todos los partidos jugados entre ellos...si miramos el ejemplo con los 3 puntos serian los partidos que han jugado Barcelona-Betis/Betis-Barcelona/Betis-Madrid/Madrid-Betis/Madrid-Barcelona/Barcelona-Madrid
c)teniendo esa consulta tendria que crear la diferencia de goles entre estos partidos para ordenarlos primero por puntos pero si son igual por esta direfencia, pero eso creo que lo tengo.

En resumen, necesito saber que equipos estan empatados dividiendolos por puntos, es decir en este caso los de 3 por un sitio y 1 por el otro para luego saber que equipos tengo que buscar en la consulta que me muestre sus partidos ademas de generarme la diferencia.

Es bastante extenso...lo siento, pero si lo escribo asi quizás se me entienda mejor.

Muchas gracias por la ayuda de tod@s!!
  #2 (permalink)  
Antiguo 12/08/2011, 19:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar un campo misma tabla

Seria bueno que en la tabla de clasificacion tengas todos los datos que normalmente se usan para estos menesteres futbolisticos: Juegos jugados, ganados, perdidos, empatados, goles a favor, goles en contra y puntuacion, con esto evitaras tener que estar haciendo calculos extra para este tipo de consultas y podras mostrar estadisticas mas completas.

Creo que este tema quedaria mejor en bases de datos que en PHP, alla podrian orientarte mejor en cuanto a como realizar la consulta final.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 13/08/2011, 02:44
 
Fecha de Ingreso: febrero-2011
Mensajes: 67
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Comparar un campo misma tabla

Realmente lo tengo todo en base de datos y en la tabla clasificacion guardo toda la informacion referente a partidos ganados, perdidos, etc... lo tengo todo. A modo de saber que consulta mostrar solo puse en el post nombre de equipos y puntos para hacerlo más simple, pero tengo TODOS los datos.

El orden correcto para mostrar la clasificacion es : 1) por puntos 2) por la diferencia de goles entre los equipos empatados ( es decir tengo que saber los partidos jugados entre ellos y calcular esa diferencia ) 3) por diferencia de goles totales ( esto ya lo calculo) 4) por goles a favor ( tambien lo tengo calculado).

El problema lo tengo en el punto número 2.

Si no me he explicado bien, lo vuelvo a intentar sin problemas, pero necesito ayuda con este tema. Tengo que entregar el proyecto en dos semanas y me he estancado en esta parte.

Muchas gracias a tod@s!
  #4 (permalink)  
Antiguo 13/08/2011, 10:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Comparar un campo misma tabla

Bueno, te recuerdo que estamos en el foro de PHP y no de MySQL, seguramente alla podran decirte con mas certeza como hacer la consulta para que incluyas todos los criterios de orden.

Algo como:
Código SQL:
Ver original
  1. SELECT *, (goles_favor - goles_contra) AS dif_goleo FROM tabla
  2.   ORDER BY puntos DESC, dif_goleo DESC, goles_favor DESC

Creo que el orden correcto seria con solo esos 3 criterios:
1- Puntos
2- Diferencia de goles anotados vs recibidos
3- Total de goles

Lo que actualmente tienes como "diferencia de goles entre los equipos empatados" y "diferencia de goles totales" me parece que es exactamente lo mismo, a menos que puedas explicarnos como es que haces esa operacion.

Bien, como te decia, por medio de la misma consulta puedes realizar operaciones y hacer que estas influyan en el orden de los resultados, pero, tambien como ya te decia, no todos en PHP sabemos como hacerlo y vuelvo a recomendarte preguntar en la seccion adecuada: http://www.forosdelweb.com/f86/
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: tabla, campos
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 15:33.