| Autor | Zpráva | ||
|---|---|---|---|
| Falcon_ Profil * |
#1 · Zasláno: 19. 3. 2008, 10:24:25
Vše mi funguje náramně, jak má.. ale.. potřebuju týmy v tabulce seřadit podle bodů a podle počtu zápasů.. Jak na to ? :-)
function tabulka($tym,$mod)
{
$pocet_muzstev = 0; // nastavit defaultne na 0
$muzstvo_query = mysql_query("select * from teams_$mod WHERE kategorie LIKE '%".$tym."%'"); // vypise vsechny tymy z dane kategorie
while ($muzstvo = mysql_fetch_array($muzstvo_query))
{
$pocet_zapasu[$muzstvo["id"]] = 0;
$nazev_muzstva[$muzstvo["id"]] = $muzstvo["nazev"]; // název mužstva do tabulky
$vyhry[$muzstvo["id"]] = 0;
$prohry[$muzstvo["id"]] = 0;
$goly_obdrzene[$muzstvo["id"]] = 0;
$goly_vstrelene[$muzstvo["id"]] = 0;
$body[$muzstvo["id"]] = 0;
$remizy[$muzstvo["id"]] = 0;
$pocet_muzstev++; // pripocte jednicku k celkovému počtu mužstev
// ^^ nastavi jim hodnoty tabulky defaultne na 0
$zapas = mysql_query("select * from match_$mod where kat LIKE '%".$tym."%' AND (tym1 = '".$muzstvo["id"]."' or tym2 = '".$muzstvo["id"]."')"); // načte všechny zápasy právě načteného týmu
while ($zapasy = mysql_fetch_array($zapas))
{
$pocet_zapasu[$muzstvo["id"]] = $pocet_zapasu[$muzstvo["id"]]+1; // připočte týmu jedničku do počtu zápasů
if ($muzstvo["id"] == $zapasy["tym1"]) // pokud je mužstvo uloženo v DB jako domácí tým
{
$goly_obdrzene[$muzstvo["id"]] = $goly_obdrzene[$muzstvo["id"]]+$zapasy["vysledek2"]; // obdržené goly
$goly_vstrelene[$muzstvo["id"]] = $goly_vstrelene[$muzstvo["id"]]+$zapasy["vysledek1"]; // vstřelené goly
if ($zapasy["vysledek1"] < $zapasy["vysledek2"]) // prohra
{
$prohry[$muzstvo["id"]]++;
}
if ($zapasy["vysledek1"] > $zapasy["vysledek2"]) // vyhra
{
$body[$muzstvo["id"]] = $body[$muzstvo["id"]]+3;
$vyhry[$muzstvo["id"]]++;
}
if ($zapasy["vysledek1"] == $zapasy["vysledek2"]) // remiza
{
$body[$muzstvo["id"]] = $body[$muzstvo["id"]]+1;
$remizy[$muzstvo["id"]]++;
}
}
if ($muzstvo["id"] == $zapasy["tym2"]) // pokud je tym ulozen v DB jako hostujici
{
$goly_obdrzene[$muzstvo["id"]] = $goly_obdrzene[$muzstvo["id"]]+$zapasy["vysledek1"];
$goly_vstrelene[$muzstvo["id"]] = $goly_vstrelene[$muzstvo["id"]]+$zapasy["vysledek2"];
if ($zapasy["vysledek2"] < $zapasy["vysledek1"]) // prohra
{
$prohry[$muzstvo["id"]]++;
}
if ($zapasy["vysledek2"] > $zapasy["vysledek1"]) // vyhra
{
$vyhry[$muzstvo["id"]]++;
$body[$muzstvo["id"]] = $body[$muzstvo["id"]]+3;
}
if ($zapasy["vysledek1"] == $zapasy["vysledek2"]) // remiza
{
$remizy[$muzstvo["id"]]++;
$body[$muzstvo["id"]] = $body[$muzstvo["id"]]+1;
}
}
}
}
echo "
<table border=\"1\" cellpadding=\"5\">
<tr>
<td class=\"tdmain\">Pořadí</td>
<td class=\"tdmain\">Mužstvo</td>
<td class=\"tdmain\">Zápasy</td>
<td class=\"tdmain\">Vyhry/Remízy/Prohry</td>
<td class=\"tdmain\">GV</td>
<td class=\"tdmain\">GO</td>
<td class=\"tdmain\">B</td>
</tr>
";
$i = 1;
$poradi = 0;
while ($i <= $pocet_muzstev+1)
{
if(array_key_exists($i,$body)) // pokud existuje hodnota $i v poli BODY. -> zjišťuje, jestli je v poli nějakej tým se stejným ID jako je $i
{
$poradi++;
echo "
<tr><td>$poradi.</td><td>".$nazev_muzstva[$i]."</td><td>".$pocet_zapas u[$i]."</td><td>".$vyhry[$i]." / ".$remizy[$i]." / ".$prohry[$i]."</td><td>".$goly_vstrelene[$i]."</td><td>".$goly_obdrzene[$i]."</td><td>".$body[$i]."</td>
";
}
$i++;
}
echo"</table>";
} |
||
| ninja Profil |
#2 · Zasláno: 19. 3. 2008, 10:27:01
Falcon_: Pocitej body primo v databazi, nez az v aplikaci. Na trideni je v SQL prikaz ORDER BY. Pocet zapasu dostanes pomoci COUNT(neco) pripadne ve spojeni s GROUP BY.
|
||
| Falcon_ Profil * |
#3 · Zasláno: 19. 3. 2008, 10:32:04
Jak je mám počítat v DB ?
Struktura match_$mod => id tym1 vysledek1 tym2 vysledek2 kat popis datum Struktura teams_$mod => id nazev kategorie |
||
| Falcon_ Profil * |
#4 · Zasláno: 19. 3. 2008, 10:35:14
btw.:
$muzstvo_query = mysql_query("select * from teams_$mod WHERE kategorie LIKE '%".$tym."%'"); // vypise vsechny tymy z dane kategorie while ($muzstvo = mysql_fetch_array($muzstvo_query)) { } Pokud to vypíše třeba 10 věcí.. Kolik je to dotazů na databázi ? Jeden nebo 10 ? :-) Teď v tom mám trošku madlajz, ale předpokládám, že 1 , když se to vše uloží do pole, že ano ? |
||
| ninja Profil |
#5 · Zasláno: 19. 3. 2008, 12:32:23
Body muzes pocitat takto:
SELECT IF(vysledek1 > vysledek2, 3,0) AS body FROM match |
||
| Kcko_ Profil * |
#6 · Zasláno: 19. 3. 2008, 12:48:10
Dovolil bych si ... http://www.rjwebdesign.net/Blog/PHP/20080113-Generovani-Nejen-Fotbalov e-Tabulky
Mozna to autorovi pomuze |
||
|
Časová prodleva: 18 let
|
|||
0