Autor | Zpráva | ||
---|---|---|---|
Michales Profil |
#1 · Zasláno: 14. 6. 2013, 18:38:59
Dobrý den,
nevím jestli toto téma zařazuji do správné sekce ale týká se to php tak doufám že ano. Zde tento kod : http://pastebin.com/RVizuw6N Mi dělá tento výpis zápasů: http://michales.eu/kriz.php?conf=3 Mohl by mi někdo poradit jak místo takového výpisu vytvořit křížovou tabulku? Křížová tabulka:http://cs.wikipedia.org/wiki/%C5%A0a...t%C3%BDm%C5%AF Jsem ochotný i něco málo zaplatit za přetvoření. Díky všem kteří se mi budou snažit poradit nebo pomoct přetvořit. |
||
Kcko Profil |
#2 · Zasláno: 14. 6. 2013, 19:02:33
Ulozis si do pole zápasy a to v podobě
$pole[$domaci][$hoste] = $vysledek; A pak přes 2 cykly v sobě vypíšeš, není na tom nic složitého. Jestli tedy myslíš tuto křížovou tabulku |
||
Michales Profil |
#3 · Zasláno: 14. 6. 2013, 19:10:57
Ano tu přesně myslím, ale Vaše rada mi nějak nepomohla.
Nešlo by to malinko rozvést? |
||
Časová prodleva: 3 dny
|
|||
Michales Profil |
#4 · Zasláno: 17. 6. 2013, 08:41:48
Tak mám hotovo.
Kdyby někdo někdy chtěl tak zde je script: <?php /* Puvodni kod */ $body = intval($_GET['body']); //načte hodnotu z URL if($body==3){require "settings_3.php";} //použije nastavení pro 3 bodový systém else{require "settings_2.php";} if (isset($_GET['conf'])) { $confid = intval($_GET['conf']); } else { $confid = 0; } // Ziskani dat $queryscores="SELECT sportsdb_wins.winid, sportsdb_wins.windate, sportsdb_wins.wintime, sportsdb_wins.rf, sportsdb_wins.ra, sportsdb_wins.winner, sportsdb_wins.loser, sportsdb_wins.wincomments, sportsdb_wins.field, sportsdb_wins.winortie, sportsdb_teams2.teamname AS winningteam, sportsdb_teams.teamname AS losingteam FROM sportsdb_wins LEFT JOIN sportsdb_teams ON sportsdb_wins.loser = sportsdb_teams.teamid LEFT JOIN sportsdb_teams AS sportsdb_teams2 ON sportsdb_wins.winner = sportsdb_teams2.teamid LEFT JOIN sportsdb_divs ON sportsdb_teams.teamdiv = sportsdb_divs.divid LEFT JOIN sportsdb_divs AS sportsdb_divs2 ON sportsdb_teams2.teamdiv = sportsdb_divs2.divid WHERE (sportsdb_divs.conference = ".$confid." OR sportsdb_divs2.conference = ".$confid." OR (sportsdb_wins.winconf = ".$confid." AND (sportsdb_wins.loser = -1 OR sportsdb_wins.winner = -1))) AND sportsdb_wins.winortie != 3 ORDER BY sportsdb_wins.winid"; // Sort by team if specified $resultscores=mysql_query($queryscores); $numscores=mysql_num_rows($resultscores); $html = ""; // hlavni HTML zasobnik // neni nulovy pocet zapasu if($numscores > 0){ /* Pouzite promenne */ $teams = Array(); // ciselnik tymu $team_matches = Array(); // vazba tymu na zapas $matches = Array(); // zapasy $matches_data = Array(); // data zapasu for($a = 0; $a < $numscores; $a++){ $data = mysql_fetch_array($resultscores); // ciselnik tymu $team_matches[$data["winner"]][] = $data["winid"]; $team_matches[$data["loser"]][] = $data["winid"]; // zapasy $matches["id"][] = $data["winid"]; $matches_data[$data["winid"]]["winner"] = $data["winner"]; $matches_data[$data["winid"]]["loser"] = $data["loser"]; // skore zapasu if($data["rf"] > $data["ra"]){ $matches_data[$data["winid"]]["winner_score"] = $data["rf"]; $matches_data[$data["winid"]]["loser_score"] = $data["ra"]; } else{ $matches_data[$data["winid"]]["winner_score"] = $data["ra"]; $matches_data[$data["winid"]]["loser_score"] = $data["rf"]; } // ciselnik tymu if(isset($teams[$data["winner"]]) == false){ $teams[$data["winner"]] = $data["winningteam"]; } if(isset($teams[$data["loser"]]) == false){ $teams[$data["loser"]] = $data["losingteam"]; } } // abecedni razeni tymu; asort($teams); // prijatelejsi indexovane pole pro tabulku $teams_sorted = Array(); foreach($teams as $key => $value){ $teams_sorted["id"][] = $key; $teams_sorted["name"][] = $value; } // horni radek $html .= "<tr>".PHP_EOL; $html .= "<td>X</td>".PHP_EOL; for($a = 0; $a < count($teams_sorted["id"]); $a++){ $html .= "<th>".$teams_sorted["name"][$a]."</th>".PHP_EOL; } $html .= "</tr>".PHP_EOL; // pro kazdy radek for($a = 0; $a < count($teams_sorted["id"]); $a++){ $html .= "<tr>".PHP_EOL; // pro kazdry sloupec for($b = 0; $b < count($teams_sorted["id"])+1; $b++){ $html .= "<td>".PHP_EOL; $left_team_id = $teams_sorted["id"][$a]; // prvni sloupec - jmeno if($b == 0){ $html .= "<strong>".$teams[$left_team_id]."</strong>"; } // kazdy dalsi - vysledek nebo X else{ $upper_team_id = $teams_sorted["id"][$b-1]; // stejne tymy - X if($left_team_id == $upper_team_id){ $html .= "X".PHP_EOL; } // skore else{ // spolecene zapasy $common_matches = (array_intersect($team_matches[$left_team_id], $team_matches[$upper_team_id])); $common_matches_id = array_values($common_matches); // pokud existuji if(count($common_matches_id) > 0){ // pro kazdy zapas for($c = 0; $c < count($common_matches_id); $c++){ // id zapasu $match_id = $common_matches_id[$c]; // vitez / skore if($matches_data[$match_id]["winner"] == $upper_team_id){ $upper_team_score = $matches_data[$match_id]["winner_score"]; $left_team_score = $matches_data[$match_id]["loser_score"]; $upper_class = "win"; $left_class = "lose"; } else{ $upper_team_score = $matches_data[$match_id]["loser_score"]; $left_team_score = $matches_data[$match_id]["winner_score"]; $upper_class = "lose"; $left_class = "win"; } $html .= "<div class=\"row\"><span class=\"".$left_class."\">".$left_team_score."</span>:<span class=\"".$upper_class."\">".$upper_team_score."</span></div>";PHP_EOL; } } // neexistuji - tecka else{ $html .= ".".PHP_EOL; } } } $html .= "</td>"; } } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Automatické tabulky</title><center> </head> <body> <style type="text/css"> body { font-family: Arial; font-size: 10px;} table { border-collapse:collapse; } table,th, td { border: 1px solid black; } .lose { color: #D90000; } .win { color: #336600; } .row { width: 100%; } </style> <table style="text-align: center;"> <?php echo $html; ?> </table> </body> </html> |
||
Časová prodleva: 11 let
|
0