Foros del Web » Programando para Internet » PHP »

fixture y tabla de posiciones (futbol)

Estas en el tema de fixture y tabla de posiciones (futbol) en el foro de PHP en Foros del Web. Hola a todos, trabajo en un portal deportivo y cada domingo quienes escriben deben actualizar la tabla de posiciones a mano. Se hace un tanto ...
  #1 (permalink)  
Antiguo 22/06/2016, 08:39
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
fixture y tabla de posiciones (futbol)

Hola a todos, trabajo en un portal deportivo y cada domingo quienes escriben deben actualizar la tabla de posiciones a mano. Se hace un tanto tedioso. Por lo tanto, me gustarìa, en primera instancia, crear una tabla dinàmica, donde con tan solo rellenar el score de cada partido de cada fecha, la tabla se arme sola.

Hasta ahora tengo 2 tablas: PARTIDOS y POSICIONES

PARTIDOS



POSICIONES



Hice un foreach que recorre la tabla PARTIDOS, estoy consiguiendo registrar en la tabla PARTIDOS los resultados de cada partido.

Lo que me falta ahora es calcular gf, gc y pts de cada team-id y guardarlos en la tabla POSICIONES. ¿Como obtengo en una variable el conteo total de gf y gc segun team-id?

Luego tengo que contabilizar puntos, pero primero quiero gf y gc

Alguna idea? Agradecería mucho cualquier detalle que puedan aportar,

Saludos
  #2 (permalink)  
Antiguo 22/06/2016, 08:47
Avatar de rodrypaladin
Moderador
 
Fecha de Ingreso: abril-2010
Ubicación: Madrid
Mensajes: 2.127
Antigüedad: 14 años, 1 mes
Puntos: 468
Respuesta: fixture y tabla de posiciones (futbol)

Los goles a favor y en contra tendrías que introducirlos también en el mismo formulario donde introduces los resultados.

Al introducir los datos del partido tendrían que ir datos a la tabla.
  • Al ganador sumar los 3 puntos
  • En caso de empate a ambos 1 punto
  • Sumar +1 a los partidos jugados de ambos equipos
  • Sumar goles a favor y en contra a ambos equipos

Creo que con eso ya puedes generar una clasificación dinámica

¿ Sabes cómo añadir registros a las tablas ?
__________________
No te olvides de dar +1 a quien te echa un cable ;)

Última edición por rodrypaladin; 22/06/2016 a las 08:52
  #3 (permalink)  
Antiguo 22/06/2016, 10:37
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: fixture y tabla de posiciones (futbol)

Muchas gracias por responder, es un respiro muy grande para mi, cualquier comentario sirve.

Para agregar un registro en la tabla creo una variable con un string mysql, y con la funcion de mysql_query la ejecuto.

Código PHP:
$update "UPDATE `segunda_fixture` SET `localTeamScore` = '$localTeamScore', `visitTeamScore` = '$visitTeamScore', `matchStatus` = '".$matchStatus."' WHERE `segunda_fixture`.`id`= $id;";
                
mysql_query($update) or die (mysql_error()); 
No entiendo como es para sumar TODOS los goles hechos de cada equipo en los partidos que se han jugado hasta el momento.

Intenté con:

(partes del código):

$gfEQUIPO 1 = 0;

foreach ($partidos as $partido) {
<input type="text" name="localTeamScore['.$partido->id.']">
<input type="text" name="visitTeamScore['.$partido->id.']">

if (local = id-team1) {
$gfEQUIPO = $gfEQUIPO + localTeamScore['.$partido->id.'];
} elseif (visitante = id-team1) {
$gfEQUIPO = $gfEQUIPO + visitTeamScore['.$partido->id.'];
}

}
  #4 (permalink)  
Antiguo 22/06/2016, 11:29
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Información Respuesta: fixture y tabla de posiciones (futbol)

Hola Kisquian,

como siempre en la programación web se pueden solucionar los problemas de varias formas, asi que para saber cual es la manera que mas se ajusta a tus necesidades pasaré a enumerar algunas de las que se me ocurren.

1- OPCION: Triggers (Dificultad alta)
Usar triggers en la base de datos. Los triggers son scripts que se programan en MySQL y que se ejecutan cuando se produce un evento. Los eventos disponibles suelen ser al realizar un INSERT, UPDATE o un DELETE.

Es decir podrias programar un trigger en la tabla 'partidos' para que cada vez que hagas un INSERT o un UPDATE en dicha tabla te actualice la otra, es decir la de 'posiciones'.

Este método es muy limpio y elegante, pero requiere un conocimiento profundo en la programación de scripts en MySQL.
2- OPCION: Procedimientos almacenados (Dificultad alta)
Usar procedimientos almacenados. Los procedimientos almacenados tambien son scripts de MySQL pero a diferencia de los triggers estos no se ejecutan por eventos, si no que son ejecutados por el usuario, igual que cuando llamas a una función.

La ventaja de los procemientos almacenados es que puedes preparar manipular el resultado de una query (consulta) a tu gusto. Se suele usar en casos extremos cuando no es suficiento con realizar una query normal y necesitas hacer operaciones mas complejas.

Este método también es muy limpio y elegante ya que delegas en la BBDD toda la logica de datos y en PHP solo te limitas a recibir los datos y mostrarlos, pero al igual que con los triggers requiere de unos conocimientos avanzados en programacion en MySQL.
3- OPCION: Tarea programada o script manual (Dificultad media)
En este caso tendras que prepararte un script en PHP que se encargue de actualizar la tabla 'posiciones' a partir de los resultados de la tabla 'partidos'. Basicamente tendras que recorrer uno por uno todos los partidos y realizar las operaciones matematicas que necesites en base a los datos que necesitas, y a medida que los vas calculando ir actualizando la tabla 'posiciones'.

El script debe ser un script php que solo se encargue de realizar esta tarea, nada mas, recalco su cometido solo sera coger datos de una tabla, hacer las operaciones necesarias y actualizar la otra tabla, nada de mostrar nada por el navegador.

Una vez tengas tu script podras ejecutarlo cuando tu lo necesites o asociarlo a una tarea programada (cron en linux). No entro a describir lo que es un cron porque esta fuera del objetivo de este mensaje.
4- OPCION: Generar las posiciones dinamicamente (Dificultad baja)
En este caso solo tendras una tabla que sera la de partidos y en lugar de preocuparte de actualizar la tabla posiciones (ya no lo vas a necesitar porque no existira esa tabla) te limitaras a obtener los resultados de los partidos, calcularas las posiciones en PHP y lo mostraras al usuario en HTML.

Con este metodo te evitas tener que estar actualizando la tabla 'posiciones' ya que ahora ya no existe. Y solo tendras que montar el listado en HTML.
Como ves todas las opciones tienen sus pros y sus contras, ahora te toca a ti elegir la que mas se ajuste a tus necesidades y conocimientos.

Saludos,

Synkronice
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #5 (permalink)  
Antiguo 22/06/2016, 12:00
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: fixture y tabla de posiciones (futbol)

Un millon de gracias, la opcion que mas se ajusta a mis necesidades es la 3- OPCION: Tarea programada o script manual (Dificultad media).

De hecho logro hacer update en los resultados pero me tranco con la parte de calcular los goles a favor y en contra.

Muy interesante y rico tu comentario, te agradezco mucho
  #6 (permalink)  
Antiguo 27/06/2016, 08:12
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: fixture y tabla de posiciones (futbol)

Hey @Synkronice

Me puedes ayudar a hacer la tabla de la opcion mas facil?

Logro cargar en una db el los goles de cada partido del torneo.

Necesito armar el GF de cada equipo (recuento total de goles para team id 1, team id 2...)
  #7 (permalink)  
Antiguo 27/06/2016, 09:10
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: fixture y tabla de posiciones (futbol)

Obtengo todas las variables. Partidos jugados, goles a favor, etc, de cada equipo...

¿Como armamos la tabla ordenada de forma descendente segun los puntos?
  #8 (permalink)  
Antiguo 27/06/2016, 15:43
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Busqueda Respuesta: fixture y tabla de posiciones (futbol)

Cita:
Iniciado por kisquian Ver Mensaje
Obtengo todas las variables. Partidos jugados, goles a favor, etc, de cada equipo...

¿Como armamos la tabla ordenada de forma descendente segun los puntos?
Mira el Ejemplo 3 que encontraras en la siguiente pagina del manual de PHP.

http://php.net/manual/es/function.array-multisort.php

Consejos:

1- Leelo tantas veces como necesites hasta entenderlo.
2- Haz ejemplos con arrays mas sencillos para verificar que funciona y lo comprendes.
3- Tomate tu tiempo, no intentes correr, estas cosas llevan tiempo.
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #9 (permalink)  
Antiguo 28/06/2016, 08:36
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: fixture y tabla de posiciones (futbol)

Mil gracias genio, me has ayudado un monton, ya he conseguido mostrar una tabla ordenada por puntos. De verdad agradezco mucho tu paciencia y buena onda.

En realidad esto es un plugin wordpress que estoy armando, desde el backend se consigue una tabla automatica con los resultados. Ahora el segundo paso será mostrar en el front end esta tabla.

  #10 (permalink)  
Antiguo 28/06/2016, 18:14
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
De acuerdo Respuesta: fixture y tabla de posiciones (futbol)

Me alegro mucho que hayas conseguido hacer lo que querias, y mucho mas que lo hayas conseguido tu solo.

Muchas veces nos atascamos porque no nos paramos a planificar bien las cosas, no todo se consigue con fuerza bruta, a veces tambien cometemos errores en la fase de analisis y llegamos a callejones sin salida.

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #11 (permalink)  
Antiguo 29/06/2016, 09:17
 
Fecha de Ingreso: marzo-2009
Ubicación: Uruguay
Mensajes: 128
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: fixture y tabla de posiciones (futbol)

Muchas gracias @Synkronice

Una última consulta: Con el método array_multisort consigo ordenar por PTS (puntos), pero tambien tengo que agregar la condición de que si los puntos son los mismos, ordene por GF (goles a favor).
  #12 (permalink)  
Antiguo 29/06/2016, 19:33
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: fixture y tabla de posiciones (futbol)

Cita:
Iniciado por kisquian Ver Mensaje
Muchas gracias @Synkronice

Una última consulta: Con el método array_multisort consigo ordenar por PTS (puntos), pero tambien tengo que agregar la condición de que si los puntos son los mismos, ordene por GF (goles a favor).
En el enlace que te pase y en el mismo apartado 3 que te mencione viene precisamente un ejemplo para ordenar usando dos columnas (volumen y edicion son las columnas del ejemplo), revisalo y pruebalo.

Saludos.
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill

Etiquetas: futbol, tabla
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 17:18.