Foros del Web » Programando para Internet » PHP »

Crear script para generar calendarios de torneos?

Estas en el tema de Crear script para generar calendarios de torneos? en el foro de PHP en Foros del Web. Hola amigos, por necesidad personal tengo que crear un script para crar calendarios de futbol, es decir las jornadas, jornada 1 betis - sevilla jornada ...
  #1 (permalink)  
Antiguo 06/12/2011, 19:55
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Crear script para generar calendarios de torneos?

Hola amigos, por necesidad personal tengo que crear un script para crar calendarios de futbol, es decir las jornadas, jornada 1 betis - sevilla jornada 2 betis - Salamanca :P etc...

La verdad ando muuuy perdido sobre el tema, he conseguido este script en google:

Código PHP:
<?php
$players 
= array('Betis','Real Madrid','Sevilla','Barcelona','Bilbao','Atlético de Madrid','Espanyol','Granada','Getafe','Levante','Mallorca','Malaga','Osasuna','Racing','Rayo vallecano','R. Sociedad','Sporting','Valencia','Villareal','Zaragoza');
$matchs = array();

foreach(
$players as $k){
        foreach(
$players as $j){
                if(
$k == $j){
                        continue;
                }
                
$z = array($k,$j);
                
sort($z);
                if(!
in_array($z,$matchs)){
                        
$matchs[] = $z;
                }
        }
}

print_r($matchs);

?>
Yo le he metido manualmente los nombres de los equipos en el array y me da este resultado:

Código HTML:
Array ( [0] => Array ( [0] => Betis [1] => Real Madrid ) [1] => Array ( [0] => Betis [1] => Sevilla ) [2] => Array ( [0] => Barcelona [1] => Betis ) [3] => Array ( [0] => Betis [1] => Bilbao ) [4] => Array ( [0] => Atlético de Madrid [1] => Betis ) [5] => Array ( [0] => Betis [1] => Espanyol ) [6] => Array ( [0] => Betis [1] => Granada ) [7] => Array ( [0] => Betis [1] => Getafe ) [8] => Array ( [0] => Betis [1] => Levante ) [9] => Array ( [0] => Betis [1] => Mallorca ) [10] => Array ( [0] => Betis [1] => Malaga ) [11] => Array ( [0] => Betis [1] => Osasuna ) [12] => Array ( [0] => Betis [1] => Racing ) [13] => Array ( [0] => Betis [1] => Rayo vallecano ) [14] => Array ( [0] => Betis [1] => R. Sociedad ) [15] => Array ( [0] => Betis [1] => Sporting ) [16] => Array ( [0] => Betis [1] => Valencia ) [17] => Array ( [0] => Betis [1] => Villareal ) [18] => Array ( [0] => Betis [1] => Zaragoza ) [19] => Array ( [0] => Real Madrid [1] => Sevilla ) [20] => Array ( [0] => Barcelona [1] => Real Madrid ) [21] => Array ( [0] => Bilbao [1] => Real Madrid ) [22] => Array ( [0] => Atlético de Madrid [1] => Real Madrid ) [23] => Array ( [0] => Espanyol [1] => Real Madrid ) [24] => Array ( [0] => Granada [1] => Real Madrid ) [25] => Array ( [0] => Getafe [1] => Real Madrid ) [26] => Array ( [0] => Levante [1] => Real Madrid ) [27] => Array ( [0] => Mallorca [1] => Real Madrid ) [28] => Array ( [0] => Malaga [1] => Real Madrid ) [29] => Array ( [0] => Osasuna [1] => Real Madrid ) [30] => Array ( [0] => Racing [1] => Real Madrid ) [31] => Array ( [0] => Rayo vallecano [1] => Real Madrid ) [32] => Array ( [0] => R. Sociedad [1] => Real Madrid ) [33] => Array ( [0] => Real Madrid [1] => Sporting ) [34] => Array ( [0] => Real Madrid [1] => Valencia ) [35] => Array ( [0] => Real Madrid [1] => Villareal ) [36] => Array ( [0] => Real Madrid [1] => Zaragoza ) [37] => Array ( [0] => Barcelona [1] => Sevilla ) [38] => Array ( [0] => Bilbao [1] => Sevilla ) [39] => Array ( [0] => Atlético de Madrid [1] => Sevilla ) [40] => Array ( [0] => Espanyol [1] => Sevilla ) [41] => Array ( [0] => Granada [1] => Sevilla ) [42] => Array ( [0] => Getafe [1] => Sevilla ) [43] => Array ( [0] => Levante [1] => Sevilla ) [44] => Array ( [0] => Mallorca [1] => Sevilla ) [45] => Array ( [0] => Malaga [1] => Sevilla ) [46] => Array ( [0] => Osasuna [1] => Sevilla ) [47] => Array ( [0] => Racing [1] => Sevilla ) [48] => Array ( [0] => Rayo vallecano [1] => Sevilla ) [49] => Array ( [0] => R. Sociedad [1] => Sevilla ) [50] => Array ( [0] => Sevilla [1] => Sporting ) [51] => Array ( [0] => Sevilla [1] => Valencia ) [52] => Array ( [0] => Sevilla [1] => Villareal ) [53] => Array ( [0] => Sevilla [1] => Zaragoza ) [54] => Array ( [0] => Barcelona [1] => Bilbao ) [55] => Array ( [0] => Atlético de Madrid [1] => Barcelona ) [56] => Array ( [0] => Barcelona [1] => Espanyol ) [57] => Array ( [0] => Barcelona [1] => Granada ) [58] => Array ( [0] => Barcelona [1] => Getafe ) [59] => Array ( [0] => Barcelona [1] => Levante ) [60] => Array ( [0] => Barcelona [1] => Mallorca ) [61] => Array ( [0] => Barcelona [1] => Malaga ) [62] => Array ( [0] => Barcelona [1] => Osasuna ) [63] => Array ( [0] => Barcelona [1] => Racing ) [64] => Array ( [0] => Barcelona [1] => Rayo vallecano ) [65] => Array ( [0] => Barcelona [1] => R. Sociedad ) [66] => Array ( [0] => Barcelona [1] => Sporting ) [67] => Array ( [0] => Barcelona [1] => Valencia ) [68] => Array ( [0] => Barcelona [1] => Villareal ) [69] => Array ( [0] => Barcelona [1] => Zaragoza ) [70] => Array ( [0] => Atlético de Madrid [1] => Bilbao ) [71] => Array ( [0] => Bilbao [1] => Espanyol ) [72] => Array ( [0] => Bilbao [1] => Granada ) [73] => Array ( [0] => Bilbao [1] => Getafe ) [74] => Array ( [0] => Bilbao [1] => Levante ) [75] => Array ( [0] => Bilbao [1] => Mallorca ) [76] => Array ( [0] => Bilbao [1] => Malaga ) [77] => Array ( [0] => Bilbao [1] => Osasuna ) [78] => Array ( [0] => Bilbao [1] => Racing ) [79] => Array ( [0] => Bilbao [1] => Rayo vallecano ) [80] => Array ( [0] => Bilbao [1] => R. Sociedad ) [81] => Array ( [0] => Bilbao [1] => Sporting ) [82] => Array ( [0] => Bilbao [1] => Valencia ) [83] => Array ( [0] => Bilbao [1] => Villareal ) [84] => Array ( [0] => Bilbao [1] => Zaragoza ) [85] => Array ( [0] => Atlético de Madrid [1] => Espanyol ) [86] => Array ( [0] => Atlético de Madrid [1] => Granada ) [87] => Array ( [0] => Atlético de Madrid [1] => Getafe ) [88] => Array ( [0] => Atlético de Madrid [1] => Levante ) [89] => Array ( [0] => Atlético de Madrid [1] => Mallorca ) [90] => Array ( [0] => Atlético de Madrid [1] => Malaga ) [91] => Array ( [0] => Atlético de Madrid [1] => Osasuna ) [92] => Array ( [0] => Atlético de Madrid [1] => Racing ) [93] => Array ( [0] => Atlético de Madrid [1] => Rayo vallecano ) [94] => Array ( [0] => Atlético de Madrid [1] => R. Sociedad ) [95] => Array ( [0] => Atlético de Madrid [1] => Sporting ) [96] => Array ( [0] => Atlético de Madrid [1] => Valencia ) [97] => Array ( [0] => Atlético de Madrid [1] => Villareal ) [98] => Array ( [0] => Atlético de Madrid [1] => Zaragoza ) [99] => Array ( [0] => Espanyol [1] => Granada ) [100] => Array ( [0] => Espanyol [1] => Getafe ) [101] => Array ( [0] => Espanyol [1] => Levante ) [102] => Array ( [0] => Espanyol [1] => Mallorca ) [103] => Array ( [0] => Espanyol [1] => Malaga ) [104] => Array ( [0] => Espanyol [1] => Osasuna ) [105] => Array ( [0] => Espanyol [1] => Racing ) [106] => Array ( [0] => Espanyol [1] => Rayo vallecano ) [107] => Array ( [0] => Espanyol [1] => R. Sociedad ) [108] => Array ( [0] => Espanyol [1] => Sporting ) [109] => Array ( [0] => Espanyol [1] => Valencia ) [110] => Array ( [0] => Espanyol [1] => Villareal ) [111] => Array ( [0] => Espanyol [1] => Zaragoza ) [112] => Array ( [0] => Getafe [1] => Granada ) [113] => Array ( [0] => Granada [1] => Levante ) [114] => Array ( [0] => Granada [1] => Mallorca ) [115] => Array ( [0] => Granada [1] => Malaga ) [116] => Array ( [0] => Granada [1] => Osasuna ) [117] => Array ( [0] => Granada [1] => Racing ) [118] => Array ( [0] => Granada [1] => Rayo vallecano ) [119] => Array ( [0] => Granada [1] => R. Sociedad ) [120] => Array ( [0] => Granada [1] => Sporting ) [121] => Array ( [0] => Granada [1] => Valencia ) [122] => Array ( [0] => Granada [1] => Villareal ) [123] => Array ( [0] => Granada [1] => Zaragoza ) [124] => Array ( [0] => Getafe [1] => Levante ) [125] => Array ( [0] => Getafe [1] => Mallorca ) [126] => Array ( [0] => Getafe [1] => Malaga ) [127] => Array ( [0] => Getafe [1] => Osasuna ) [128] => Array ( [0] => Getafe [1] => Racing ) [129] => Array ( [0] => Getafe [1] => Rayo vallecano ) [130] => Array ( [0] => Getafe [1] => R. Sociedad ) [131] => Array ( [0] => Getafe [1] => Sporting ) [132] => Array ( [0] => Getafe [1] => Valencia ) [133] => Array ( [0] => Getafe [1] => Villareal ) [134] => Array ( [0] => Getafe [1] => Zaragoza ) [135] => Array ( [0] => Levante [1] => Mallorca ) [136] => Array ( [0] => Levante [1] => Malaga ) [137] => Array ( [0] => Levante [1] => Osasuna ) [138] => Array ( [0] => Levante [1] => Racing ) [139] => Array ( [0] => Levante [1] => Rayo vallecano ) [140] => Array ( [0] => Levante [1] => R. Sociedad ) [141] => Array ( [0] => Levante [1] => Sporting ) [142] => Array ( [0] => Levante [1] => Valencia ) [143] => Array ( [0] => Levante [1] => Villareal ) [144] => Array ( [0] => Levante [1] => Zaragoza ) [145] => Array ( [0] => Malaga [1] => Mallorca ) [146] => Array ( [0] => Mallorca [1] => Osasuna ) [147] => Array ( [0] => Mallorca [1] => Racing ) [148] => Array ( [0] => Mallorca [1] => Rayo vallecano ) [149] => Array ( [0] => Mallorca [1] => R. Sociedad ) [150] => Array ( [0] => Mallorca [1] => Sporting ) [151] => Array ( [0] => Mallorca [1] => Valencia ) [152] => ..... etc.. )
Ahora mi duda es mas compleja... ¿Como puedo hacer de ese codigo para sacar los partidos y meter los resultados en la base de datos? habia pensado en crear una tabla de este modo en la base de datos:

id= autoincrement
jornada = (Aqui pensaba poner el numero de la jornada)
local = equipo que juega en casa
visitante = pues eso mismo.. ;)

Algo asi.. me podeis hechar una manita que no sea al cuello? :P jajaja

Saludos y gracias por todos.
  #2 (permalink)  
Antiguo 06/12/2011, 21:06
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 2 meses
Puntos: 177
Respuesta: Crear script para generar calendarios de torneos?

Hola yo tuve que hacer algo similar hace algún tiempo, fijate acá que puse el código que encontré , a ver ai te sirve

http://www.forosdelweb.com/f18/mostr...-array-887943/


que lástima que la web de donde lo saqué no existe más
__________________
la la la
  #3 (permalink)  
Antiguo 06/12/2011, 22:23
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Crear script para generar calendarios de torneos?

muchisimas gracias truman_truman, he usado ese codigo que me indicas y me ha ido bien, ahora una duda, sabes como recoger el resultado y guardarlo en una base de datos?
  #4 (permalink)  
Antiguo 12/12/2011, 06:25
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: Crear script para generar calendarios de torneos?

Hola gente, ya estoy utilizando el siguiente código:

Código PHP:
<?php
/* 
 * This code owes an enormous debt to 
 * http://www.barrychessclub.org.uk/berger2001.htm 
 */

function main() {
    
?>
    <style>
    input, textarea { display: block; margin-bottom: 1em; }
    label { font-weight: bold; display: block; }
    </style>
    <h1>Fixtures Generator</h1>
    <p>This page is part of <a
    href="http://bluebones.net/2005/05/league-fixtures-generator/">bluebones.net</a>.</p>
    <?php
    
// Find out how many teams we want fixtures for.
    
if (! isset($_GET['teams']) && ! isset($_GET['names'])) {
        print 
get_form(); 
    } else {
        
# XXX check for int
        
print show_fixtures(isset($_GET['teams']) ?  nums(intval($_GET['teams'])) : explode("\n"trim($_GET['names'])));
    }
}

function 
nums($n) {
    
$ns = array();
    for (
$i 1$i <= $n$i++) {
        
$ns[] = $i;
    }
    return 
$ns;
}

function 
show_fixtures($names) { 
    
$teams sizeof($names);

    print 
"<p>Fixtures for $teams teams.</p>";

    
// If odd number of teams add a "ghost".
    
$ghost false;
    if (
$teams == 1) {
        
$teams++;
        
$ghost true;
    }
    
    
// Generate the fixtures using the cyclic algorithm.
    
$totalRounds $teams 1;
    
$matchesPerRound $teams 2;
    
$rounds = array();
    for (
$i 0$i $totalRounds$i++) {
        
$rounds[$i] = array();
    }
   
    for (
$round 0$round $totalRounds$round++) {
        for (
$match 0$match $matchesPerRound$match++) {
            
$home = ($round $match) % ($teams 1);
            
$away = ($teams $match $round) % ($teams 1);
            
// Last team stays in the same place while the others
            // rotate around it.
            
if ($match == 0) {
                
$away $teams 1;
            }
            
$rounds[$round][$match] = team_name($home 1$names
                . 
" vs " team_name($away 1$names);
        }
    }

    
// Interleave so that home and away games are fairly evenly dispersed.
    
$interleaved = array();
    for (
$i 0$i $totalRounds$i++) {
        
$interleaved[$i] = array();
    }
    
    
$evn 0;
    
$odd = ($teams 2);
    for (
$i 0$i sizeof($rounds); $i++) {
        if (
$i == 0) {
            
$interleaved[$i] = $rounds[$evn++];
        } else {
            
$interleaved[$i] = $rounds[$odd++];
        }
    }

    
$rounds $interleaved;

    
// Last team can't be away for every game so flip them
    // to home on odd rounds.
    
for ($round 0$round sizeof($rounds); $round++) {
        if (
$round == 1) {
            
$rounds[$round][0] = flip($rounds[$round][0]);
        }
    }
    
    
// Display the fixtures        
    
for ($i 0$i sizeof($rounds); $i++) {
        print 
"<p>Round " . ($i 1) . "</p>\n";
        foreach (
$rounds[$i] as $r) {
            print 
$r "<br />"
        }
        print 
"<br />";
    }
    print 
"<p>Second half is mirror of first half</p>";
    
$round_counter sizeof($rounds) + 1;
    for (
$i sizeof($rounds) - 1$i >= 0$i--) {
        print 
"<p>Round " $round_counter "</p>\n";
        
$round_counter += 1;
        foreach (
$rounds[$i] as $r) {
            print 
flip($r) . "<br />";
        }
        print 
"<br />";
    }
    print 
"<br />";

    if (
$ghost) {
        print 
"Matches against team " $teams " are byes.";
    }
}

function 
flip($match) {
    
$components split(' vs '$match);
    return 
$components[1] . " vs " $components[0];
}

function 
team_name($num$names) {
    
$i $num 1;
    if (
sizeof($names) > $i && strlen(trim($names[$i])) > 0) {
        return 
trim($names[$i]);
    } else {
        return 
$num;
    }
}

function 
get_form() {
    
$s '';
    
$s '<p>Enter number of teams OR team names</p>' "\n";
    
$s .= '<form action="' $_SERVER['SCRIPT_NAME'] . '">' "\n";
    
$s .= '<label for="teams">Number of Teams</label><input type="text" name="teams" />' "\n";
    
$s .= '<input type="submit" value="Generate Fixtures" />' "\n";
    
$s .= '</form>' "\n";

    
$s .= '<form action="' $_SERVER['SCRIPT_NAME'] . '">' "\n";
    
$s .= '<div><strong>OR</strong></div>' "\n";
    
$s .= '<label for="names">Names of Teams (one per line)</label>'
        
'<textarea name="names" rows="8" cols="40"></textarea>' "\n";
    
$s .= '<input type="submit" value="Generate Fixtures" />' "\n";
    
$s .= "</form>\n";
    return 
$s;
}

main();

?>
¿Alguien sabría explicarme como se guardarían los resultados en la base de datos?

Muchísimas gracias a todos por la ayuda.

Etiquetas: tabla, calendario
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 03:01.