Foros del Web » Programando para Internet » PHP »

Ayuda con una tabla de posiciones de fútbol simple

Estas en el tema de Ayuda con una tabla de posiciones de fútbol simple en el foro de PHP en Foros del Web. Hola soy Gustavo Garcia tengo una web de fútbol mas que todo es de noticias pero pienso agregarle también los resultados de las diferentes ligas ...
  #1 (permalink)  
Antiguo 04/07/2010, 19:49
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 14 años, 5 meses
Puntos: 0
Ayuda con una tabla de posiciones de fútbol simple

Hola soy Gustavo Garcia tengo una web de fútbol mas que todo es de noticias pero pienso agregarle también los resultados de las diferentes ligas de España y México pero tengo un problema no puedo llamar la tabla de posiciones .

Alguien puede crear un sistema simple de una tabla de posiciones pero que llame , el equipo , posición , puntos , goles a favor , goles en contra y la diferencia , y luego que ordene por puntos y si los puntos son iguales que ordene por la diferencia de goles

mi tabla es así | local | visita | GL | GV | estado |
| Real M.| BARSA | 3 | 2 | Finalizado
se llama por estado finalizado

se recompensara el que me ayude
mi correo de live messanger es [email protected]
  #2 (permalink)  
Antiguo 04/07/2010, 20:49
Avatar de bocho0610  
Fecha de Ingreso: enero-2010
Ubicación: <? echo "Santiago, Chile"; ?>
Mensajes: 341
Antigüedad: 14 años, 11 meses
Puntos: 26
Respuesta: Ayuda con una tabla de posiciones de fútbol simple

es facil

paginapartidos.php
Código PHP:
Ver original
  1. $sql=mysql_query("select * from futbol",$conexion);
  2.  
  3. <table>
  4. <td> Local</td>
  5. <td> Visita</td>
  6. <td> Goles Local</td>
  7. <td> Goles Visita</td>
  8. <td> Estado</td>
  9.  
  10. while($row=mysql_fetch_assoc($sql)){
  11. <tr>
  12. <td>$row['local'];</td>
  13. <td>$row['visita'];</td>
  14. <td>$row['gl'];</td>
  15. <td>$row['gv'];</td>
  16. <td>$row['estado'];</td>
  17. </tr>
  18. }
  19. </table>

manda pm con las dudas y te la termino
__________________
Sigueme en Twitter!
Septimoarte.cl <-- Un mundo en cine.

Última edición por bocho0610; 04/07/2010 a las 21:17
  #3 (permalink)  
Antiguo 05/07/2010, 03:16
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con una tabla de posiciones de fútbol simple

lo que uso es esto pero solo llama los puntos y los nombres necesito llamar la diferencia de GOLES y si lo puntos son iguales que defina el primero por la diferencia de goles

Código PHP:
<?php
      $qry 
mysql_query("SELECT * FROM partidos WHERE id_liga='0' ");
  while (
$row mysql_fetch_array($qry))
{

        
$equipoA $row[local];
        
$equipoB $row[visita];
        
        
        if(
$row['GL'] > $row['GV'])

            
$puntos[$equipoA] += 3;
            
$puntos[$equipoB] += 0;
            

          

        if(
$row['GV'] > $row['GL'])

            
$puntos[$equipoB] += 3;
            
$puntos[$equipoA] += 0;

    

        if(
$row['GV'] == $row['GL'])
        {

            
$puntos[$equipoB] += 1;
            
$puntos[$equipoA] += 1;



        }
        
reset($puntos);


}
arsort($puntos);

foreach (
$puntos as $equipo  => $puntaje )



{
?>
  #4 (permalink)  
Antiguo 05/07/2010, 05:35
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 9 meses
Puntos: 26
Respuesta: Ayuda con una tabla de posiciones de fútbol simple

Primer de todo crea una tabla como la que he creado. (mas o menos, pero que tenga los gf, gc, puntos.) Acostumbrate a poner en las tablas id numericos como primarios, y no nombres, siempre es mas comodo.

Código PHP:
$sql 'CREATE TABLE `posiciones_futbol` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`nombre_equipo` VARCHAR( 50 ) NOT NULL ,
`posicion` INT( 2 ) NOT NULL ,
`puntos` INT( 3 ) NOT NULL ,
`gf` INT( 3 ) NOT NULL ,
`gc` INT( 3 ) NOT NULL
) ENGINE = MYISAM '
;

mysql_query$sql$conn ); 
Este trozo lo tenias tu, pero lo he modificado un poco.
Código PHP:
$qry mysql_query("SELECT * FROM partidos WHERE id_liga='0' "); 
  while (
$row mysql_fetch_array($qry)) 


        
$equipoA $row[id_local]; 
        
$equipoB $row[id_visita]; 
         
         
        if(
$row['GL'] > $row['GV']) {

            
$puntos[$equipoA] += 3
            
$puntos[$equipoB] += 0
             }

           

        elseif(
$row['GV'] > $row['GL']) {

            
$puntos[$equipoB] += 3
            
$puntos[$equipoA] += 0
}
     

       else{

            
$puntos[$equipoB] += 1
            
$puntos[$equipoA] += 1

        } 
sumaPuntos($puntos[$equipoA] , $puntos[$equipoB]); //funcion que suma los puntos obtenidos en el partido a la tabla

ordenaPosiciones(); 
en ordenaPosiciones seria algo asi (te lo digo de palabra)
Haces un ordenado de los puntos con:
Select * FROM posiciones_futbol ORDER BY puntos DESC;
Recorres el array y si encuentra que 2 tienen la misma puntuacion pues vas a tu tabla y comparas los goles de cada uno, de ahi pillas el que tiene mas goles y le dices que ese este por delante del otro.

Esa es una sentencia sql complicada, pero es la que necesitas. No se si me he explicado bien... Igualmente supongo que hay maneras mas sencillas de hacerlo, pero no me viene ninguna ahora.

Última edición por Vallu; 05/07/2010 a las 05:44
  #5 (permalink)  
Antiguo 05/07/2010, 10:07
 
Fecha de Ingreso: julio-2010
Mensajes: 19
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Ayuda con una tabla de posiciones de fútbol simple

Me pareció muy interesante tu modo de crear pero lo que yo no quiero es crear una tabla en la mysql de posiciones ya que tengo una base de datos grande y no puedo editarla lo que yo quiero es que la tabla de posiciones se defina según los marcadores del equipo local y el visitante pero que defina WHERE finalizado si el partido no esta finalizado no lo cuenta .

ya tengo todo solo necesito ayuda para sacar de este codigo la diferencia y incluso ya tengo la diferencia pero ya llamo de otra manera con un COUNT llamo los goles a favor y los goles en contra luego resto los goles a favor menos goles en contra : ejemplo 12 GF - 13 GC = -1

Código PHP:
<?php
      $qry 
mysql_query("SELECT * FROM partidos WHERE id_liga='0' ");
  while (
$row mysql_fetch_array($qry))
{

        
$equipoA $row[local];
        
$equipoB $row[visita];
        
        
        if(
$row['GL'] > $row['GV'])

            
$puntos[$equipoA] += 3;
            
$puntos[$equipoB] += 0;
            

          

        if(
$row['GV'] > $row['GL'])

            
$puntos[$equipoB] += 3;
            
$puntos[$equipoA] += 0;

    

        if(
$row['GV'] == $row['GL'])
        {

            
$puntos[$equipoB] += 1;
            
$puntos[$equipoA] += 1;



        }
        
reset($puntos);


}
arsort($puntos);

foreach (
$puntos as $equipo  => $puntaje )




{
?>
  #6 (permalink)  
Antiguo 06/07/2010, 04:42
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 9 meses
Puntos: 26
Respuesta: Ayuda con una tabla de posiciones de fútbol simple

Lo hare suponiendo que el array puntos() es el array donde se acumulan los puntos que tienen actualmente cada equipo, y que es un array asociativo.

Primero de todo tienes que ordenar el array de los puntos de mayor a menor, teniendo asi que el equipo de mayor puntuación queda en la primera posición del array. Para ello usa:

arsort($puntos);

Ahora ya tenemos ordenados los equipo por puntuación, pero pueden haber equipos con puntuaciones iguales, así que hemos de ver la diferencia de goles. Para ello mejor creamos funciones para ayudar a entender el código.

Código PHP:

arsort
($puntos);
$auxNombre='';
$auxPts=0;
foreach(
$puntos as $k => $v){    
    
    echo 
$v;
    
compararPts($k$auxNombre);
    
$auxNombre=$k;
    
$auxPts=$v;
}

function 
compararPts($equipo1$equipo2){
    global 
$puntos;
    if(
$puntos[$equipo1]==$puntos[$equipo1]){
        
compararGoles($equipo1$equipo2);
    }
}

function 
compararGoles($equipo1$equipo2){
    global 
$puntos;
    
//aqui haces la conexion a tu BD para ver la diferencia de goles entre estos equipos.
    
if($diferencia_goles<0){//esto significa que el equipo1 pierde por diferencia de goles sobre el equipo2
        //aqui intercambias las posiciones de los 2 equipos dentro de array puntos, pero esta parte no se como hacerla! xD
    
}

Informate sobre como intercambiar posiciones en los arrays asociativos.

Última edición por Vallu; 06/07/2010 a las 04:50

Etiquetas: futbol, posiciones, tablas
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 10:15.