Pomoc s php kodíkem :D

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
Gizzer2
Level 3
Level 3
Příspěvky: 419
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline
Kontakt:

Pomoc s php kodíkem :D

Příspěvekod Gizzer2 » 23 dub 2013 19:13

Zdravím,
potřeboval bych poradit jak zaimpletovat datum do tohoto kodu (zde je vidět funkce kodu http://michales.eu/losovani.php):

Kód: Vybrat vše

<?php


function main() {
    ?>
    <style>
    body,

#web_all { width: 500px; margin: 0px auto; background: #4bc2ec url(http://hdwallpapersdesktop.com/wallpapers/wp-content/uploads/2011/09/05/Ice-hockey-Wallpaper-NHL-Wallpaper-4.jpg) center top no-repeat;background-attachment: fixed; }
    input, textarea { display: block; margin-bottom: 1em; }
    label { font-weight: bold; display: block; }   
    </style>
 <center> <h1>Rozlosování zápasů</h1>

    <?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>Rozlosování pro $teams týmy.</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;
    $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 - 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)
                . ' <font color="red">VS</font> '. 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 % 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>Kolo " . ($i + 1) . "</p>\n";
        foreach ($rounds[$i] as $r) {
            print $r . "<br />";
        }
        print "<br />";
    }
    print "<p>Druhá polovina je zrcadlem první polovině</p>";
    $round_counter = sizeof($rounds) + 1;
    for ($i = sizeof($rounds) - 1; $i >= 0; $i--) {
        print "<p>Kolo " . $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;
    if (sizeof($names) > $i && strlen(trim($names[$i])) > 0) {
        return trim($names[$i]);
    } else {
        return $num;
    }
}

function get_form() {
    $s = '';
    $s = '<p><font color="red">Zadejte počet týmů nebo jména týmů</p>' . "\n";
    $s .= '<form action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n";
    $s .= '<label for="teams">Počet týmů</label><input type="text" name="teams" />' . "\n";
    $s .= '<input type="submit" value="Rozlosování" />' . "\n";
    $s .= '</form>' . "\n";

    $s .= '<form action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n";
    $s .= '<div><strong>nebo</strong></div>' . "\n";
    $s .= '<label for="names">Jméno týmu (Na každý řadek jméno jednoho týmu)</label>'
        . '<textarea name="names" rows="8" cols="40"></textarea>' . "\n";
    $s .= '<input type="submit" value="Rozlosování" />' . "\n";
    $s .= "</form>\n";
    return $s;
}

main();

?>
      </center>

Jde mi o to že by se přidal další imput, kde by se zadal datum a ve výsledku by se připočítaval den.
Doufám že jsem to vysvětlil k pochopení. Pro jistotu si vyzkoušejte funkci na stránce http://michales.eu/losovani.php
Zadejte počet týmu a klikněte na rozlosování. Vyjede vám výsledek a bude tam kolo 1, kolo 2 atd. Takhle bych chtěl i ten datum aby se přičítal jako ty kola.
Díky za radu.
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
To nejlepší z country muziky:http://country.funsite.cz/

Reklama
Uživatelský avatar
Gizzer2
Level 3
Level 3
Příspěvky: 419
Registrován: prosinec 11
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomoc s php kodíkem :D

Příspěvekod Gizzer2 » 24 dub 2013 16:57

Řešení:

Kód: Vybrat vše

for($i = 0; $i <= 10; $i++)
echo date('d.m.Y', strtotime($_GET['datum'] . ' +' . $i . ' day')). '<br>'; 
"Cíle by měly být třešínky na dortech, ne na hromadách hoven."
To nejlepší z country muziky:http://country.funsite.cz/

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Pomoc s php kodíkem :D

Příspěvekod CZechBoY » 24 dub 2013 21:25

stačí jednou zjistit hodnotu timestamp v integeru a potom přičítat 60*60*24*$i
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Pomoc s webem
    od Tay » 09 úno 2025 15:53 » v Web-tipy a vaše weby
    5
    19850
    od Tay Zobrazit poslední příspěvek
    10 úno 2025 12:09
  • Pomoc při taktu Příloha(y)
    od ondyN » 14 led 2025 15:53 » v Taktování a další úpravy PC
    2
    6812
    od Dyonysos Zobrazit poslední příspěvek
    14 led 2025 16:19
  • Pomoc pri upgrade procesoru
    od filipo88 » 16 úno 2025 19:11 » v Rady s výběrem hw a sestavením PC
    5
    3056
    od petr22 Zobrazit poslední příspěvek
    17 úno 2025 12:45
  • Pomoc se zpomaleným notebookem
    od trefort » 29 zář 2024 14:02 » v Problémy s hardwarem
    8
    2820
    od atari Zobrazit poslední příspěvek
    30 zář 2024 10:04
  • Pomoc s výběrem komponent
    od kurkisak » 02 pro 2024 14:48 » v Rady s výběrem hw a sestavením PC
    2
    1785
    od kurkisak Zobrazit poslední příspěvek
    02 pro 2024 18:11

Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host