Zakomponování funkce Vyřešeno

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

table
nováček
Příspěvky: 12
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Zakomponování funkce

Příspěvekod table » 21 čer 2013 14:41

Dobrý horký den,
potřeboval bych poradit jak do následujícího scriptu zakomponovat tuto podmínku.
Čeho chci dosáhnout je, že pokud bude naplněno následující, tak to u výsledku zobrazí (ff).
winortie 5= výhra domácích v prodloužení
winortie 2= výhra hostů v prodloužení
Podmínku mám tuto:



Kód: Vybrat vše

if ($data['winortie'] == 2 || $data['winortie'] == 5) {
        print ' (ff)';
    }

Ale nedaří se mi to do toho scriptu dostat tak aby to bylo funkční poradí někdo?
Zde je script:

Kód: Vybrat vše

<?php

require "settings.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";

// Sort by team if specified
if (isset($_POST['teamtosort']) && $_POST['teamtosort'] != 'all') {
    $teamtosort = intval($_POST['teamtosort']);
    $queryscores .= " AND (sportsdb_wins.winner = $teamtosort OR sportsdb_wins.loser = $teamtosort)";
}

$queryscores .= ' ORDER BY winid DESC';
$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
   
         $matches_data[$data["winid"]]["winner_score"] =  $data["rf"];
         $matches_data[$data["winid"]]["loser_score"] =  $data["ra"];
    
 

      // 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 style='text-align: center; background-color:#4682B4;'>".PHP_EOL;
   $html .= "<td><a href='http://tabulky.michales.eu'><img width='25' src='/uploads//e1p.png'></a></td>".PHP_EOL;
   for($a = 0; $a < count($teams_sorted["id"]); $a++){
      
      $html .= "<th><img title='".$teams_sorted["name"][$a]."' src='/img/".$teams_sorted["name"][$a].".gif'></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><img title='".$teams[$left_team_id]."' src='/img/".$teams[$left_team_id].".gif'></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 .= "<img src='/img/".$teams[$left_team_id].".gif'>".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"];
               
                        if($upper_team_score < $left_team_score){
                        $class  = "win";  }
                else{
                        $class = "lose"; }
                     }
                     else{
                        
                        $upper_team_score = $matches_data[$match_id]["loser_score"];
                        $left_team_score = $matches_data[$match_id]["winner_score"];
             
             if($upper_team_score > $left_team_score){
                  $class  = "lose";
                  }else{
                $class  = "win";}
   
                     }
   
   
      
                     $html .= "<div class=\"row\"><span class=\"".$class."\">".$left_team_score."</span>:<span class=\"".$class."\">".$upper_team_score."</span></div>"; PHP_EOL;
           
                  }
               }

               // neexistuji - pomlčka
               else{

                  $html .= "<span style='font-family: Arial; font-size: 11px; color:black;'>-</span>".PHP_EOL;
               }
            }
         }
          
         $html .= "</td>";
      }
   }
}
 
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<title>Křížová tabulka</title><center>
 
</head>
<body>

<style type="text/css">
body { font-family: Arial; font-size: 11px;}
table { border-collapse:collapse; }
table,th, td { border: 1px solid black; }
.lose { color: red; }
.win { color: green; }
.row { width: 100%; }
</style>
 
<table style="text-align: center; background-color:#ADD8E6;">

   <?php echo $html; ?>

</table>
 
</body>
</html>

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

Re: Zakomponování funkce

Příspěvekod CrazyC0de » 21 čer 2013 23:13

Na cely script nemam cas, zkus na miste kde se ma nachazet ten script vypsat echem neco, muze tam byt presmerovani a ani si toho nemusis vsimnout.


Odesláno z Tapatalk 2.
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>

table
nováček
Příspěvky: 12
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: Zakomponování funkce

Příspěvekod table » 22 čer 2013 12:33

Mno nevím jak by mi echo pomohlo ale vyřešil jsem to následujícím způsobem:
Upravil jsem select takto:

Kód: Vybrat vše

SELECT CASE WHEN sportsdb_wins.winortie IN (2,5) THEN 'p' ELSE '' END AS priznak

Přidal pak řádek:

Kód: Vybrat vše

$matches_data[$data["winid"]]["priznak"] =  $data["priznak"];


Pak už jsem to jen vypsal tam kde potřebuji.

Uživatelský avatar
CrazyC0de
Level 3
Level 3
Příspěvky: 517
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zakomponování funkce

Příspěvekod CrazyC0de » 22 čer 2013 12:46

No ocividne jsi nemel problem v podminkach ale v mysql. Diky tomu echu jsi mohl aspon zjistit jeatli tam jde neco vypsat.


Odesláno z Tapatalk 2.
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>

table
nováček
Příspěvky: 12
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: Zakomponování funkce

Příspěvekod table » 22 čer 2013 12:49

Vypisovat to šlo celou dobu, jen to ignorovalo tu podmínku (takže to vypsalo to co jsem chtěl ale u všech zápasů). Nicméně nyní je to vyřešeno v selectu, což je myslím lepší než nějaká podmínka.

Uživatelský avatar
CrazyC0de
Level 3
Level 3
Příspěvky: 517
Registrován: prosinec 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Zakomponování funkce

Příspěvekod CrazyC0de » 23 čer 2013 11:06

Podmínku to neignorovalo, podmínka neměla hodnotu se kterou mohla operovat, po opravě dotazu to funguje, tudíž za to nejspíše mohl ten dotaz a to, že jsi ho nedodal je tvoje chyba, kdyby jsi měl zapnutý errory, tak by ti tam naskákal Notice a hned by jsi věděl kde je chyba.

No aspon, že jsi to vyřešil, lockni téma.
Vtípek

Alenka v říši divů : <div> <div><div><div><div>ALENKA</div> </div> </div> </div></div>

table
nováček
Příspěvky: 12
Registrován: červen 13
Pohlaví: Muž
Stav:
Offline

Re: Zakomponování funkce  Vyřešeno

Příspěvekod table » 23 čer 2013 16:34

Asi jsem trochu nechápavej, ale vůbec jsem nyní nepochopil co si tu teď napsal.
Zapnuté errory mám vždy. Žádné to neházelo. Jak už jsem psal to co to mělo dělat to dělalo ale ignorovalo to tu podmínku která měla hodnoty správně zadané, takže to vypisovalo u každého zápasu zmíněné (ff).
K tématu si neporadil vůbec nic, spíše si akorát blbě kecal.


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 2 hosti