Autor Zpráva
Anonymní
Profil *
Ahoj, na webu jsem našel toto:
http://www.tom-kot.cz/clanky/generovani-rozpisu-zapasu-v-systemu-kazdy -s-kazdym/

Je to článek o systému fotbalovýho rozpisu, každej s každým, jen ne sám ze sebou.

Řekněme, že bych to chtěl taky aplikovat na svůj web.

Mám tabulku, kde jsou týmy, řekněmě 6 týmů, každej má kromě svýho názvu i určitý ID. A ted bych to chtěl zakomponovat k sobě na web, podle toho příkladu, kterej byl na těch stránkách:
Kód ze stránek


function je_liche($cislo) {
return(bool)($cislo & 1);
}

function GenerujRozpis($pocet_tymu) {
if (je_liche($pocet_tymu))
$n = $pocet_tymu + 1;
else
$n = $pocet_tymu;

$k = $n - 1; // počet kol
$s = $n / 2; // počet zápasů na kolo

for ($i = 1; $i <= $k; $i++) {
if (!je_liche($pocet_tymu))
$zapasy[$i][] = $i . "-" . $n;
for ($j = 1; $j < $s; $j++) {
$tym_a = (($n - $j + $i - 2) % $k) + 1;
$tym_b = (($i + $j - 1) % $k) + 1;
$zapasy[$i][] = $tym_a . "-" . $tym_b;
}
}
return $zapasy;
}

Tady to má vyhodit zápasy, když zadáte počet týmů


A tímto cyklem si je zobrazíte:



$rozpis = GenerujRozpis(11);
foreach ($rozpis as $kolo=>$zapasy) {
echo "<h3>Kolo $kolo:</h3>";
foreach ($zapasy as $dvojice)
{
list($tym1, $tym2) = explode("-", $dvojice);
echo "<li>$tym1 $tym2</li>";
}
}


Jak docílit toho, abych z databáze, kde mám uložené ID těch šesti týmů dosadil 3 z nich za proměnnou $tym1 a 3 z nich za proměnnou $tym2 ???
Pavel Prochazka.zde.cz
Profil *
Nepochopil jsem posledni vetu.....
Neni lesi si kod odkrokovat a divat se co to vlastne dela?
Anonymní
Profil *
To vím co dělá, při zadání počtu týmů, ti obecně vyhodí toto (např. při šesti týmech):


Kolo 1:

* tým 1 - tým 6
* tým 5 - tým 2
* tým 4 - tým 3

Kolo 2:

* tým 2 - tým 6
* tým 1 - tým 3
* tým 5 - tým 4

Kolo 3:

* tým 3 - tým 6
* tým 2 - tým 4
* tým 1 - tým 5

Kolo 4:

* tým 4 - tým 6
* tým 3 - tým 5
* tým 2 - tým 1

Kolo 5:

* tým 5 - tým 6
* tým 4 - tým 1
* tým 3 - tým 2


A ted potřebuju "dosadit" za ten výpis to, co já potřebuju, tzn. svoje údaje v databázi, mám v tabulce šest týmů s nějakýma ID. Za to Kolo jsem si schopnej dosadit datum v pohodě, ale dosadit za ty čísla (tým1 až ...) svoje ID týmů, který mám v databázi, abych si to pak pěkně mohl uložit k sobě do tabulky s názvem např. _zapasy, na to jsem pořád nepřišel.
Pavel Prochazka.zde.cz
Profil *
Porad nechapu co chces.... :(.
Neumis nacist parametr z databaze neco kde je problem.....?
Nactes data z databaze a podle nejakeho klice potom zamenis nazev TYMx za data z databaze.... A nebo rovnou pracovat s ID z databaze....
nightfish
Profil
za předpokladu, že v tabulce existuje alespoň 6 týmů, které musí mít dohromady ID a rozsahu 1 až 6...
<?php

//pripojit k databazi
$tymy = array();
$result = mysql_query("select id, nazev from tymy");
while ($data = mysql_fetch_row($result)) {
list($id,$nazev) = $data;
$tymy[$id] = $nazev;
}
$rozpis = GenerujRozpis(11);
foreach ($rozpis as $kolo=>$zapasy) {
echo "<h3>Kolo $kolo:</h3>";
foreach ($zapasy as $dvojice) {
list($tym1, $tym2) = explode("-", $dvojice);
echo "<li>";
echo $tymy[$tym1]." ".$tymy[$tym2];
echo "</li>";
}
}
?>
Anonymní
Profil *
Vyzkouším, ten název jsem nepotřeboval, jen to id, díky hned jdu na to.
Anonymní
Profil *
Tak to nevypsalo nic, vypsalo to:
"

Notice: Undefined index: 1 in C:Program Filescesta est.php on line 91
Notice: Undefined index: 6 in C:Program Filescesta est.php on line 91
Notice: Undefined index: 5 in C:Program Filescesta est.php on line 91
Notice: Undefined index: 2 in C:Program Filescesta est.php on line 91
Notice: Undefined index: 4 in C:Program Filescesta est.php on line 91
Notice: Undefined index: 3 in C:Program Filescesta est.php on line 91

Na řádku 91 je toto: echo $tymy[$tym1]." ".$tymy[$tym2];




"

ale je to dobrá cesta, budu to zkoušet dál, díky.
Anonymní
Profil *
Tak pořád to píše undefined, nechápu to:

kod zde:


//pripojit k databazi
conn();
$tymy = array();

$result = mysql_query("select tymid from tabulka where skupina='1'");

while ($data = mysql_fetch_row($result)) {

list($tymid) = $data;

$tymy[$tymid] = $tymid;
}

$rozpis = GenerujRozpis(6);

foreach ($rozpis as $kolo=>$zapasy) {

echo "<h3>Kolo $kolo:</h3>";

foreach ($zapasy as $dvojice) {

list($tym1, $tym2) = explode("-", $dvojice);

echo "<li>";

echo $tymy[$tym1]." ".$tymy[$tym2];

echo "</li>";

}

}
nightfish
Profil
Tak pořád to píše undefined, nechápu to:
zřejmě nebyla splněna podmínka, která je hned na začátku mého příspěvku

budeš si zřejmě tedy muset udělat mapování

něco ve stylu
$pocet = 1;

while ($data = mysql_fetch_row($result)) {
list($tymid) = $data;
$tymy[$pocet++] = $tymid;
}
Anonymní
Profil *
Jo, promiň, na to jsem zapomněl... Funguje toooo!

Nightfish je bůh, ani ne tak pro jeho znalosti, protože ty já neznám, ale proto že mi chtěl pomoct a dal si tu práci to pochopit. Díky.;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.