He probado de esta manera pero sigue insertándome un único registro vacío:
Código PHP:
Ver original<?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) {
for ($i = 1; $i <= $n; $i++) {
$ns[] = $i;
}
return $ns;
}
function show_fixtures($names) {
print "<p>Jornadas para $teams equipos.</p>";
// If odd number of teams add a "ghost".
$ghost = false;
if ($teams % 2 == 1) {
$teams++;
$ghost = true;
}
// Generate the fixtures using the cyclic algorithm.
$totalRounds = $teams - 1;
$matchesPerRound = $teams / 2;
for ($i = 0; $i < $totalRounds; $i++) {
}
for ($round = 0; $round < $totalRounds; $round++) {
for ($match = 0; $match < $matchesPerRound; $match++) {
$home = ($round + $match) % ($teams - 1);
$away = ($teams - 1 - $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)
. " v " . team_name($away + 1, $names);
}
}
// Interleave so that home and away games are fairly evenly dispersed.
for ($i = 0; $i < $totalRounds; $i++) {
$interleaved[$i] = array(); }
$evn = 0;
$odd = ($teams / 2);
for ($i = 0; $i < sizeof($rounds); $i++) { if ($i % 2 == 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 % 2 == 1) {
$rounds[$round][0] = flip($rounds[$round][0]);
}
}
// Display the fixtures
for ($i = 0; $i < sizeof($rounds); $i++) { print "<p>Jornada " . ($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 = explode(' v ', $match); return $components[1] . " v " . $components[0];
}
function team_name($num, $names) {
$i = $num - 1;
} else {
return $num;
}
}
function get_form() {
$s = '';
$s .= '<form action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n";
$s .= '<label for="names">Introducir el ID de los equipos participantes (uno por linea)</label>'
. '<textarea name="names" rows="8" cols="40">
106
108
111
113
116
119
123
133
141
143
145
147
</textarea>' . "\n";
$s .= '<input type="submit" value="Generate Fixtures" />' . "\n";
$s .= "</form>\n";
return $s;
}
main();
$ssql ="insert into matches (round,home,away) values ('" . $round. "','" . $home. "','" . $away. "')";
echo '<span class="label label-success">¡Partido insertado correctamente!</span>';
}else{
echo '<span class="label label-important">¡Ha habido un error!</span>';
?>