Portal Greentube

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 58 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: Di Dez 15, 2015 20:25:21 
Wengana
Wengana
Offline

Registriert: Di Nov 06, 2012 23:37:57
Beiträge: 376
Geschlecht: Männlich
Flagge:
Ziel: Ich spiele nicht
OS: anderes
Danke gegeben: 12
Danke bekommen: 23
 
MagicBedda hat geschrieben:
operator1 hat geschrieben:
Bei einigen Fahrern wird das Bestzeitdatum in 2 Zeilen angezeigt.
Wie kann ich das ändern ??

Die Spaltenbreite bei Quote und Bestzeit sind unter gewissen Umständen zu klein gewählt worden.
Code:
echo "<col width='120'>";
Ich habe schon die Breite für die Quote auf 80 und die Breite für die Bestzeit auf 120 angepasst.

Sollte bei den ganzen Skript's bzw Beispielen von mir bereits (schon seit längerem) korrigiert sein, ansonsten mal die Funktion ErzeugeRanking aktualisieren (oder ersetzen).


Danke. :smt041 :smt041
Werde ich morgen mal ausprobieren.

operator1

Ausprobiert und läuft !!
Nochmals danke !! :smt041


Zuletzt geändert von operator1 am Mi Dez 16, 2015 14:54:28, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: Di Dez 15, 2015 22:12:54 
Skilehrer's Liebling
Skilehrer's Liebling
Offline

Registriert: Do Dez 25, 2008 13:23:08
Beiträge: 27
Wohnort: Oer-Erkenschwick
Geschlecht: Männlich
SC-Nickname: Oilfoot_2010
Danke gegeben: 2
Danke bekommen: 3
 
B1Tho hat geschrieben:
Mmmh. Hab das so eingefügt und anzeigen tuts mir jetzt gar nichts mehr. :smt017


OK, hier kommt die komplette Version, die so bei mir funktioniert.

Code:
<html>
<head>
<title>SC16 Oelfuesse</title>
<style type="text/css">
<!--
h3, p, td,th {
 font-family: Arial;
}
-->
</style>
</head>
<?php
ini_set('display_errors', 1);
error_reporting( - 1);
?>

<?php
$nick = "";
$points = "";
$pos = "";

// Für jede Art von Rennen ein Array
$rankingCup = array();

// Nicknamen der Fahrer die aufgelistet werden sollen
$nicks = array('Oilfoot', 'Roschko', 'Luette', 'waldelbklaus', 'Xian', 'Weitmarerr');

// Lädt die Spielerprofile und befüllt die Rankings
LoadRankings(3447);

// Die Rankings die angezeigt werden sollen
ErzeugeRankingCup($rankingCup);

//-------------------------------
// Hilfsmethoden
//-------------------------------
//Befüllt die Rankings
function LoadRankings($gameId)
{
   GLOBAL $nicks;
   GLOBAL $nick;

   GLOBAL $rankingCup;

   $url = sprintf('https://www.ski-challenge.com/gm-proxy.php');

   $curl_array = array();

   // erzeuge einen neuen cURL-Multi-Handle
   $curl_multi_handle = curl_multi_init();

   for($i = 0; $i < count($nicks); $i++)
   {
      // erzeuge einen neuen cURL-Handle
      $curl_array[$i] = curl_init($url);

      //Settings
      curl_setopt($curl_array[$i], CURLOPT_ENCODING, "deflate, gzip");
      curl_setopt($curl_array[$i], CURLOPT_POST, 1);
      curl_setopt($curl_array[$i], CURLOPT_POSTFIELDS, 'service=1&function=GetPlayerProfileByNick&gameId=' . $gameId . '&nick=' . urlencode($nicks[$i]));
      curl_setopt($curl_array[$i], CURLOPT_HTTPHEADER, array(
                                                             "Accept: */*",
                                                             "Accept-Language: de-DE,de,q=0.5",
                                                             "Host: www.ski-challenge.com",
                                                             "User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",
                                                             "X-Requested-With: XMLHttpRequest",
                                                             ));
      curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, TRUE);
      curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYHOST, 0);
      curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYPEER, FALSE);
      curl_multi_add_handle($curl_multi_handle, $curl_array[$i]);
   }
   do
   {
      curl_multi_exec($curl_multi_handle, $running);
   }
   while($running > 0) ;

   for($i = 0; $i < count($nicks); $i++)
   {
      $result = curl_multi_getcontent($curl_array[$i]);

      // führe die Aktion aus und gebe die Daten an den Browser weiter
      $xml = new SimpleXMLElement($result);

      // print_r($xml); //Gibt das gesamte Ergebnis als XML-Element aus

      $nick = $xml->playerDetails->nick;

      foreach($xml->playerScores->Score  as $key => $row)
      {
         if($row->seasonId == 98)
         {
            $points = $row->points;
            $pos = $row->position;
            $rankingCup[] = array('Platz' => $pos, 'Fahrer' => $nick, 'Punkte' => $points);
         }
      }
   }
}

//Baut die Rankting-Table auf
function ErzeugeRankingCup($rankArray)
{
   if(count($rankArray) > 0)
   {
      echo "<H3>Weltcup</H3>";

      foreach($rankArray as $key => $row)
      {
         $platz[$key] = $row['Platz'];
         $player[$key] = $row['Fahrer'];
         $points[$key] = $row['Punkte'];
      }

      array_multisort($platz, SORT_NUMERIC, $rankArray);

      echo "<table border='0'>";
      echo "<colgroup>";
      echo "<col width='20'>";
      echo "<col width='5'>";
      echo "<col width='60'>";
      echo "<col width='5'>";
      echo "<col width='80'>";
      echo "<col width='5'>";
      echo "<col width='50'>";

      echo "</colgroup>";
      echo "<tr>";

      echo "<th style='text-align: center;'>Pos</th>";
      echo "<th style='text-align: center;'>  </th>";
      echo "<th style='text-align: right;'>Platz</th>";
      echo "<th style='text-align: center;'>  </th>";
      echo "<th style='text-align: left;'>Fahrer</th>";
      echo "<th style='text-align: center;'>  </th>";
      echo "<th style='text-align: right;'>Punkte</th>";

      echo "</tr>";

      $index = 1;

      foreach($rankArray as $key => $row)
      {
         echo "<tr>";
         echo "<td style='text-align: right;'>$index</td>";
         echo "<td style='text-align: center;'>  </td>";
         echo "<td style='text-align: right;'>" . $row['Platz'] . "</td>";
         echo "<td style='text-align: center;'>  </td>";
         echo "<td style='text-align: left;'>" . $row['Fahrer'] . "</td>";
         echo "<td style='text-align: center;'>  </td>";
         echo "<td style='text-align: right;'>" . number_format((double)$row['Punkte'], '0', ',', '.') . "</td>";
         echo "</tr>";
         $index++;
      }
      echo "</table>";
   }
}
?>
</HTML>


Nach oben
 Profil  
Mit Zitat antworten  
Für diesen Beitrag haben sich bei Oilfoot folgende User bedankt:
B1Tho
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: Fr Dez 18, 2015 23:46:22 
Europameister
Europameister
Benutzeravatar
Offline

Registriert: Mo Jan 18, 2010 09:01:52
Beiträge: 2611
Geschlecht: Männlich
Alter: 33
SC-Nickname: Filu84
Nationencup: Team Hungary
Flagge:
Ziel: Top 100
OS: Windows 7
Danke gegeben: 179
Danke bekommen: 382
 
MagicBedda hat geschrieben:
So, hier jetzt das aktuelle Ranking mit Ski-Einstellungen der Fahrer, des Top-Fahrer's und einem Weltcup- und Bonuscup-Ranking.
An dieser Stelle ein Danke an rudi für die Ski-Einstellungen :prayer:
Code:
$SkiEinstellungLaden = TRUE; bzw. $SkiEinstellungLadenTOP = TRUE;
auf TRUE oder FALSE setzen und die Ski-Einstellungen werden dementsprechend geladen.

Es wurde doch etwas mehr am Code verändert, falls ihr euch nicht zurechtfindet fragt doch einfach hier nach :)
Viel Spaß !!!

Code:
<!-- Header des Teams -->
<H1 style="font-size: 24px; vertical-align: middle";><img src="http://www.moneypedia.de/images/thumb/8/86/Sealand1flag.jpg/200px-Sealand1flag.jpg" width="40" height="25" border="1" alt="Sealand" /> Team F&uuml;rstentum Sealand</H1>
<?php
   // Fehlermeldungen/Warnungen ausgeben
   //ini_set('display_errors', '1');
   //error_reporting(E_ALL);
   
   ErzeugeKonstanten();
   
   $nick = "";
   $playerData = "";
   $allWeatherMili = "";
   $skiSettingSun = "";
   $skiSettingSnow = "";
   $skiSettingIce = "";
   $skiSettingRace = "";
   $points = "";
   $pos = "";
   
   // Für jede Art von Rennen ein Array
   $rankingSun  = array();
   $rankingSnow = array();
   $rankingIce  = array();
   $rankingRace = array();
   $rankingAll  = array();
   $rankingCupWorld  = array();
   $rankingCupBonus  = array();
   
   // Nicknamen der Fahrer die aufgelistet werden sollen
   $nicks = array('LePRIME', 'harrygold', 'DaKoni', 'Cr4zy8B4ll', 'Jaegermeister', 'frfr', 'Ha2ta', 'gustel007', 'm4xx_rko', 'MagicBedda', 'ManiTheKing', 'MonkeyDLuffy', 'NatDwo', 'NewbloodII', 'surfer_flo', 'Superkeks30', 'madmax68', 'Spunkfrau', 'Schneehasel');
   
   // Die ID der einzelnen Rennen für das Ranking setzen
   $competitionIdSun  = GROEDEN_SUN;
   $competitionIdSnow = GROEDEN_SNOW;
   $competitionIdIce  = GROEDEN_ICE;
   $competitionIdRace = GROEDEN_RACE;

   // Sollen Ski-Einstellungen geladen werden?
   $SkiEinstellungLaden = TRUE;
   $SkiEinstellungLadenTOP = TRUE;
   
   // Lädt die Skieinstellungen der Besten
   LoadSkiSettingsTop();
   
   // Lädt die Spielerprofile und befüllt die Rankings
   LoadRankings(DESKTOP);
   
   // Die Rankings die angezeigt werden sollen
   ErzeugeRanking($rankingRace, GROEDEN,   RACE, $skiSettingRace);
   ErzeugeRanking($rankingSun,  GROEDEN,   SUN,  $skiSettingSun);
   ErzeugeRanking($rankingSnow, GROEDEN,   SNOW, $skiSettingSnow);
   ErzeugeRanking($rankingIce,  GROEDEN,   ICE,  $skiSettingIce);
   ErzeugeRanking($rankingAll,  GROEDEN,   ALL,  "");
   ErzeugeRankingCup($rankingCupWorld, CUP_WORLD);
   ErzeugeRankingCup($rankingCupBonus, CUP_BONUS);
     
   //-------------------------------
   // Hilfsmethoden
   //-------------------------------   
   
   // Lädt die Skieinstellungen für einen Fahrer
   function LoadSkiSettingsPlayer($player, $compID)
   {
      // Skieinstellungen der Spieler abrufen
      $url_Rudi = sprintf('http://www.skirudi.info/search.php?tournamentid='.$compID.'&name='.urlencode($player));
      
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url_Rudi);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $result_Rudi = curl_exec($ch);
      curl_close($ch);
      
      $jsonData = json_decode($result_Rudi, true);
               
      if (($jsonData[0]['drehen'] > 0) || ($jsonData[0]['kanten'] > 0) || ($jsonData[0]['gleiten'] > 0))
      {
         return $jsonData[0]['drehen']."-".$jsonData[0]['kanten']."-".$jsonData[0]['gleiten'];
   
      }
      else return "";
   }
   
   // Lädt die Skieinstellungen vom Topfahrer
   function LoadSkiSettingsTop()
   {
      GLOBAL $SkiEinstellungLadenTOP;
      
      if($SkiEinstellungLadenTOP)
      {
         GLOBAL $competitionIdSun;
         GLOBAL $competitionIdSnow;
         GLOBAL $competitionIdIce;
         GLOBAL $competitionIdRace;
         
         GLOBAL $skiSettingSun;
         GLOBAL $skiSettingSnow;
         GLOBAL $skiSettingIce;
         GLOBAL $skiSettingRace;
         
         while ($skiSettingSun  == "") $skiSettingSun  = LoadSkiSettingsComp($competitionIdSun);
         while ($skiSettingSnow == "") $skiSettingSnow = LoadSkiSettingsComp($competitionIdSnow);
         while ($skiSettingIce  == "") $skiSettingIce  = LoadSkiSettingsComp($competitionIdIce);
         while ($skiSettingRace == "") $skiSettingRace = LoadSkiSettingsComp($competitionIdRace);
      }
   }
   
   // Lädt die Skieinstellungen eines Bewerbes
   function LoadSkiSettingsComp($compID)
   {
      $url_Rudi = sprintf('http://www.skirudi.info/data/ranking'.$compID.'.json');
      
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url_Rudi);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $result_Rudi = curl_exec($ch);
      curl_close($ch);
      
      $jsonData = json_decode($result_Rudi, true);
               
      if (($jsonData[0]['drehen'] > 0) || ($jsonData[0]['kanten'] > 0) || ($jsonData[0]['gleiten'] > 0))
      {
         return $jsonData[0]['drehen']."-".$jsonData[0]['kanten']."-".$jsonData[0]['gleiten'];
   
      }
      else
      {
         if(empty(json_decode($result_Rudi, true)))
         {
            return "x-x-x";
         }
         else return "";
      }
   }
   
   //Befüllt die Rankings
   function LoadRankings($gameId)
   {
      GLOBAL $nicks;
      GLOBAL $nick;
      GLOBAL $playerData;
      GLOBAL $allWeatherMili;
     
      GLOBAL $rankingSun;
      GLOBAL $rankingSnow;
      GLOBAL $rankingIce;
      GLOBAL $rankingRace;
      GLOBAL $rankingAll;
      GLOBAL $rankingCupWorld;
      GLOBAL $rankingCupBonus;
     
      GLOBAL $competitionIdSun;
      GLOBAL $competitionIdSnow;
      GLOBAL $competitionIdIce;
      GLOBAL $competitionIdRace;
     
      $url = sprintf('https://www.ski-challenge.com/gm-proxy.php');
     
      $curl_array = array();
     
      // erzeuge einen neuen cURL-Multi-Handle
      $curl_multi_handle = curl_multi_init();
      
      for($i = 0; $i < count($nicks); $i++)
      {
         // erzeuge einen neuen cURL-Handle
         $curl_array[$i] = curl_init($url);
         
         //Settings
         curl_setopt($curl_array[$i], CURLOPT_ENCODING, "deflate, gzip");
         curl_setopt($curl_array[$i], CURLOPT_POST, 1);
         curl_setopt($curl_array[$i], CURLOPT_POSTFIELDS, 'service=1&function=GetPlayerProfileByNick&gameId='.$gameId.'&nick='.urlencode($nicks[$i]));
         curl_setopt($curl_array[$i], CURLOPT_HTTPHEADER, array(
         "Accept: */*",
         "Accept-Language: de-DE,de,q=0.5",
         "Host: www.ski-challenge.com",
         "User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)",
         "X-Requested-With: XMLHttpRequest",
         ));
         curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, TRUE);
         curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYHOST, 0);
         curl_setopt($curl_array[$i], CURLOPT_SSL_VERIFYPEER, FALSE);
         curl_multi_add_handle($curl_multi_handle, $curl_array[$i]);
      }   
      do
      {
         curl_multi_exec($curl_multi_handle, $running);
      } while($running > 0);

      for($i = 0; $i < count($nicks); $i++)
      {
         $result = curl_multi_getcontent($curl_array[$i]);

         // führe die Aktion aus und gebe die Daten an den Browser weiter
         $xml = new SimpleXMLElement($result);
         
         //print_r($xml); //Gibt das gesamte Ergebnis als XML-Element aus
         
         $nick = $xml->playerDetails->nick;
      
         $playerData = $xml->playerSpecifics->SpecificData;
         
         $allWeatherMili = 0;
         $counterAllWeather = 0;
         
         // Durchsuche alle gefahrenen Zeiten des Spielers
         foreach ($xml->playerRankings->Ranking as $key => $row)
         {   
            //Je nach Rennen (Strecke, Bedingung) ein anderes Array befüllen
            if ($row->competitionId == $competitionIdSun)
            {
               $rankingSun[]   = SetRankingArray($row, $competitionIdSun);
               $allWeatherMili = $allWeatherMili + ErmittleZeitMili($row->p1);
               $counterAllWeather++;
            }
            elseif ($row->competitionId == $competitionIdSnow)
            {
               $rankingSnow[]  = SetRankingArray($row, $competitionIdSnow);
               $allWeatherMili = $allWeatherMili + ErmittleZeitMili($row->p1);
               $counterAllWeather++;
            }
            elseif ($row->competitionId == $competitionIdIce)
            {
               $rankingIce[]   = SetRankingArray($row, $competitionIdIce);
               $allWeatherMili = $allWeatherMili + ErmittleZeitMili($row->p1);
               $counterAllWeather++;
            }
            elseif ($row->competitionId == $competitionIdRace)
            {
               $rankingRace[] = SetRankingArray($row, $competitionIdRace);
            }
         }   

         foreach ($xml->playerScores->Score as $key => $row)
         {
            $points = $row->points;
            $pos = $row->position;
            $cupId = $row->seasonId;
            
            if(($cupId == WELTCUP) || ($cupId == WELTCUP_MOB))
            {
               $rankingCupWorld[] = array('Platz' =>$pos,'Fahrer' =>$nick,'Punkte' =>$points);
            }
            
            if(($cupId == BONUSCUP) || ($cupId == BONUSCUP_MOB))
            {
               $rankingCupBonus[] = array('Platz' =>$pos,'Fahrer' =>$nick,'Punkte' =>$points);
            }

         }
         
         //Nur Fahrer hinzufügen die bei allen Bedingungen gefahren sind
         if ($counterAllWeather == 3)
         {
            $rankingAll[] = SetRankingArrayAllWeather();
         }
      }
   }
   
   //Zeit ermitteln; Format(0:00,000)
   function ErmittleZeit($time_micro)
   {           
      $min_temp = substr($time_micro, 0, -3) / 60;
         
      $min = substr($min_temp, 0, 1);
         
      $sek = substr($time_micro, 0, -3) - ($min * 60);
      
      if (strlen($sek) <= 1)
      {
         $sek = "0".$sek;
      }
     
      $mili = substr($time_micro, -3);
     
      return $min .":". $sek .",". $mili;
   }
   
   //Differenz zwischen 2 Zeiten ermitteln
   function ErmittleDiff($timeVorher, $timeNachher)
   {
      $helpDiff = $timeNachher - $timeVorher;
      $newMin = floor($helpDiff / 60000);
      $helpDiff = $helpDiff - ($newMin * 60000);
      $newSec = floor($helpDiff / 1000);
      $helpDiff = $helpDiff - ($newSec * 1000);
      $newMili = $helpDiff;
     
      if (strlen($newSec) <= 1)
      {
         $newSec = "0".$newSec;
      }
      if (strlen($newMili) <= 1)
      {
         $newMili = "0".$newMili;
      }
      if (strlen($newMili) <= 2)
      {
         $newMili = "0".$newMili;
      }
     
      return "+ ". $newMin .":". $newSec .",". $newMili;
   }
   
   //Zeit in Millisekunden ermitteln
   function ErmittleZeitMili($time_micro)
   {           
      $min_temp = substr($time_micro, 0, -3) / 60;
         
      $min = substr($min_temp, 0, 1);
         
      $sek = substr($time_micro, 0, -3) - ($min * 60);
     
      if (strlen($sek) <= 1)
      {
         $sek = "0".$sek;
      }
     
      $mili = substr($time_micro, -3);
     
      return ($min * 60000) + ($sek * 1000) + $mili;
   }
   
   //Zeit für die All-Weather-Wertung berechnen
   function ErmittleZeitAllWeather($milisec)
   {
      $newMin = floor($milisec / 60000);
      $milisec = $milisec - ($newMin * 60000);
      $newSec = floor($milisec / 1000);
      $milisec = $milisec - ($newSec * 1000);
      $newMili = $milisec;
     
      if (strlen($newSec) <= 1)
      {
         $newSec = "0".$newSec;
      }
      if (strlen($newMili) <= 1)
      {
         $newMili = "0".$newMili;
      }
      if (strlen($newMili) <= 2)
      {
         $newMili = "0".$newMili;
      }
      
      return $newMin .":". $newSec .",". $newMili;
   }
   
   //Ermittle Datum/Uhrzeit letzte Bestzeit
   function LetzteBestzeit($bestzeit)
   {
      $trans = array('Mon' => 'Mo', 'Tue' => 'Di', 'Wed' => 'Mi', 'Thu' => 'Do', 'Fri' => 'Fr', 'Sat' => 'Sa', 'Sun' => 'So');
      return strtr(date("D, d.m. H:i", strtotime($bestzeit)), $trans);
   }
   
   //Befüllt das Array für das Ranking
   function SetRankingArray($xmlArr, $compId)
   {   
      GLOBAL $nick;
      GLOBAL $playerData;
      GLOBAL $SkiEinstellungLaden;
     
      $zeit = ErmittleZeit($xmlArr->p1);
     
      $milisec = ErmittleZeitMili($xmlArr->p1);
     
      $position = $xmlArr->position;
      
      $bestzeit = LetzteBestzeit($xmlArr->lastResult);
     
      $km = 0;
     
      foreach ($playerData as $key => $row)
      {
         if (($row->competitionId == $compId) && ($row->specificId == KMID))
         {
            $km = $row->value / 1000;
            break;
         }
      }
     
      $start = 0;
     
      foreach ($playerData as $key => $row)
      {
         if (($row->competitionId == $compId) && ($row->specificId == STARTID))
         {
            $start = $row->value;
            break;
         }
      }
      
      $ziel = 0;
     
      foreach ($playerData as $key => $row)
      {
         if (($row->competitionId == $compId) && ($row->specificId == ZIELID))
         {
            $ziel = $row->value;
            break;
         }
      }
      
      $sturz = $start - $ziel;
      
      $quote  = 0;
      
      if ($start > 0)
      {
         $quote = $ziel * 100 / $start;
      }
     
      $ski = "";
      
      if($SkiEinstellungLaden)
      {
         while ($ski == "")
         {
            $ski = LoadSkiSettingsPlayer($nick, $compId);
         }
      }
      
      return array('Platz' => $position, 'Fahrer' => $nick, 'Zeit' => $zeit, 'Km' => $km, 'Start' => $start, 'Sturz' => $sturz, 'Ziel' => $ziel, 'Quote' => $quote, 'Bestzeit' =>$bestzeit, 'Mili' => $milisec, 'Ski' => $ski);
   }
   
   //Befüllt das Array für das Ranking (AllWeather)
   function SetRankingArrayAllWeather()
   {   
      GLOBAL $nick;
      GLOBAL $playerData;
      GLOBAL $allWeatherMili;
      GLOBAL $competitionIdSun;
      GLOBAL $competitionIdSnow;
      GLOBAL $competitionIdIce;
     
      $zeit = ErmittleZeitAllWeather($allWeatherMili);
           
      $milisec = $allWeatherMili;
     
      $position = "";
      $ski = "";
      $bestzeit = "";
     
      $km = 0;
     
      foreach ($playerData as $key => $row)
      {
         if ((($row->competitionId == $competitionIdSun)  && ($row->specificId == KMID)) ||
            (($row->competitionId == $competitionIdSnow) && ($row->specificId == KMID)) ||
            (($row->competitionId == $competitionIdIce)  && ($row->specificId == KMID)))
         {
            $km = $km + $row->value;
         }
      }
     
      if ($km > 0)
      {
         $km = $km / 1000;
      }
      
      $start = 0;
     
      foreach ($playerData as $key => $row)
      {
         if ((($row->competitionId == $competitionIdSun)  && ($row->specificId == STARTID)) ||
            (($row->competitionId == $competitionIdSnow) && ($row->specificId == STARTID)) ||
            (($row->competitionId == $competitionIdIce)  && ($row->specificId == STARTID)))
         {
            $start = $start + $row->value;
         }
      }
      
      $ziel = 0;
     
      foreach ($playerData as $key => $row)
      {
         if ((($row->competitionId == $competitionIdSun)  && ($row->specificId == ZIELID)) ||
            (($row->competitionId == $competitionIdSnow) && ($row->specificId == ZIELID)) ||
            (($row->competitionId == $competitionIdIce)  && ($row->specificId == ZIELID)))
         {
            $ziel = $ziel + $row->value;
         }
      }
      
      $sturz = $start - $ziel;
      
      $quote = $ziel * 100 / $start;
     
      return array('Platz' => $position, 'Fahrer' => $nick, 'Zeit' => $zeit, 'Km' => $km, 'Start' => $start, 'Sturz' => $sturz, 'Ziel' => $ziel, 'Quote' => $quote, 'Bestzeit' =>$bestzeit, 'Mili' => $milisec, 'Ski' => $ski);
   }
   
   //Baut die Ranking-Table auf
   function ErzeugeRanking($rankArray, $strecke, $bedingung, $topSki)
   {   
      if (count($rankArray) > 0)
      {
         GLOBAL $SkiEinstellungLadenTOP;
         
         if(($bedingung <> ALL) && ($SkiEinstellungLadenTOP)) echo "<br /><H3>".$strecke." - ".$bedingung."  /  Top-Ski: ".$topSki."</H3>";
         else echo "<br /><H3>".$strecke." - ".$bedingung."</H3>";
     
         foreach ($rankArray as $key => $row)
         {         
            $platz[$key]    = $row['Platz'];
            $player[$key]   = $row['Fahrer'];
            $zeit[$key]     = $row['Zeit'];
            $mili[$key]     = $row['Mili'];
            $km[$key]       = $row['Km'];
            $ski[$key]      = $row['Ski'];
            $start[$key]    = $row['Start'];
            $ziel[$key]     = $row['Ziel'];
            $sturz[$key]    = $row['Sturz'];
            $quote[$key]    = $row['Quote'];
            $bestzeit[$key] = $row['Bestzeit'];
         }
         
         if ($bedingung <> ALL)
         {
            array_multisort($platz, SORT_NUMERIC, $rankArray);
         }
         else
         {
            array_multisort($mili, SORT_NUMERIC, $rankArray);
         }
         
         echo "<table border='0'>";
         echo "<colgroup>";
         echo "<col width='30'>";
         echo "<col width='10'>";
         if ($bedingung <> ALL)
         {
            echo "<col width='60'>";
            echo "<col width='10'>";
         }
         echo "<col width='110'>";
         echo "<col width='10'>";
         echo "<col width='60'>";
         echo "<col width='10'>";
         echo "<col width='80'>";
         echo "<col width='10'>";
         echo "<col width='80'>";
         echo "<col width='10'>";
         echo "<col width='60'>";
         echo "<col width='10'>";
         echo "<col width='40'>";
         echo "<col width='10'>";
         echo "<col width='40'>";
         echo "<col width='10'>";
         echo "<col width='40'>";
         echo "<col width='10'>";
         echo "<col width='80'>";
         if ($bedingung <> ALL)
         {
            echo "<col width='10'>";
            echo "<col width='120'>";
            echo "<col width='10'>";
            echo "<col width='70'>";
         }
         echo "</colgroup>";
         echo "<tr>";
         
         echo "<th style='text-align: center;'>Pos</th>";
         echo "<th style='text-align: center;'>  </th>";
         if ($bedingung <> ALL)
         {
            if ($bedingung == RACE)
            {
               echo "<th style='text-align: center;'>Rennen</th>";
            }
            else
            {
               echo "<th style='text-align: center;'>Quali</th>";
            }
            echo "<th style='text-align: center;'>  </th>";
         }
         echo "<th style='text-align: center;'>Athlet</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Zeit</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Diff</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Diff 1.</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Km</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Start</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Ziel</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Sturz</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Quote</th>";
         if ($bedingung <> ALL)
         {
            echo "<th style='text-align: center;'>  </th>";
            echo "<th style='text-align: center;'>Bestzeit</th>";
            echo "<th style='text-align: center;'>  </th>";
            echo "<th style='text-align: center;'>Ski</th>";
         }
         echo "</tr>";
         
         $index = 1;
         $helpMili = 0;
         $helpMiliFirst = 0;
         $newDiff = "";
         $newDiffGesamt = "";
         
         foreach ($rankArray as $key => $row)
         {     
            if ($index == 1)
            {
               $helpMiliFirst = $row['Mili'];
            }
            if ($index > 1)
            {
               $newDiff = ErmittleDiff($helpMili, $row['Mili']);
               $newDiffGesamt = ErmittleDiff($helpMiliFirst, $row['Mili']);
            }
            $helpMili = $row['Mili'];
           
            echo "<tr>";
            echo "<td style='text-align: right;'>$index</td>";
            echo "<td style='text-align: center;'>  </td>";
            if ($bedingung <> ALL)
            {
               echo "<td style='text-align: right;'>".$row['Platz']."</td>";
               echo "<td style='text-align: center;'>  </td>";
            }
            echo "<td style='text-align: left;'>".$row['Fahrer']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$row['Zeit']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$newDiff."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$newDiffGesamt."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".number_format($row['Km'], '2', ',', '.')."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$row['Start']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$row['Ziel']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$row['Sturz']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".number_format($row['Quote'], '2', ',', '.')." %</td>";
            if ($bedingung <> ALL)
            {
               echo "<td style='text-align: center;'>  </td>";
               echo "<td style='text-align: right;'>".$row['Bestzeit']."</td>";
               echo "<td style='text-align: center;'>  </td>";
               echo "<td style='text-align: right;'>".$row['Ski']."</td>";
            }
            echo "</tr>";
            $index++;
         }
         echo "</table>";       
      }
   }
   
   //Baut die Weltcup/Bonuscup-Rangliste auf
   function ErzeugeRankingCup($rankArray, $cup)
   {
      if (count($rankArray) > 0)
      {
         echo "<br /><H3>".$cup."</H3>";
         
         foreach ($rankArray as $key => $row)
         {
            $platz[$key]  = $row['Platz'];
            $player[$key] = $row['Fahrer'];
            $points[$key]   = $row['Punkte'];
         }
         
         array_multisort($platz, SORT_NUMERIC, $rankArray);
         echo "<table border='0'>";
         echo "<colgroup>";
         echo "<col width='30'>";
         echo "<col width='10'>";
         echo "<col width='60'>";
         echo "<col width='10'>";
         echo "<col width='110'>";
         echo "<col width='10'>";
         echo "<col width='70'>";
         echo "</colgroup>";
         echo "<tr>";
         echo "<th style='text-align: center;'>Pos</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Cup</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Athlet</th>";
         echo "<th style='text-align: center;'>  </th>";
         echo "<th style='text-align: center;'>Punkte</th>";
         echo "</tr>";
         
         $index = 1;
         
         foreach ($rankArray as $key => $row)
         {
            echo "<tr>";
            echo "<td style='text-align: right;'>$index</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".$row['Platz']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: left;'>".$row['Fahrer']."</td>";
            echo "<td style='text-align: center;'>  </td>";
            echo "<td style='text-align: right;'>".number_format((double)$row['Punkte'], '0', ',', '.')."</td>";
            echo "</tr>";
            $index++;
         }
         
         echo "</table>";
      }
   }
   
   function ErzeugeKonstanten()
   {
      //---------------------------------------------------------------
      //Konstanten für die einzelnen Strecken und Bedingungen (Desktop)
      //---------------------------------------------------------------
      
      //----BEAVER CREEK----
      define('BEAVER_SUN',  1062);
      define('BEAVER_SNOW', 1063);
      define('BEAVER_ICE',  1064);
      define('BEAVER_RACE', 1065);
      
      //----GRÖDEN----
      define('GROEDEN_SUN',  1074);
      define('GROEDEN_SNOW', 1075);
      define('GROEDEN_ICE',  1076);
      define('GROEDEN_RACE', 1077);
      
      //----BORMIO----
      define('BORMIO_SUN',  1116);
      define('BORMIO_SNOW', 1117);
      define('BORMIO_ICE',  1118);
      define('BORMIO_RACE', 1119);
      
      //----WENGEN----
      define('WENGEN_SUN',  1122);
      define('WENGEN_SNOW', 1123);
      define('WENGEN_ICE',  1124);
      define('WENGEN_RACE', 1125);
      
      //----KITZBÜHEL----
      define('KITZ_SUN',  1128);
      define('KITZ_SNOW', 1129);
      define('KITZ_ICE',  1130);
      define('KITZ_RACE', 1131);      
      
      //----GARMISCH----
      define('GARMISCH_SUN',  1134);
      define('GARMISCH_SNOW', 1135);
      define('GARMISCH_ICE',  1136);
      define('GARMISCH_RACE', 1137);
      
      //----ST.MORITZ----
      define('STMORITZ_SUN',  1140);
      define('STMORITZ_SNOW', 1141);
      define('STMORITZ_ICE',  1142);
      define('STMORITZ_RACE', 1143);

      //----VAL-D’ISÈRE----
      define('VALDI_SUN',  1170);
      define('VALDI_SNOW', 1171);
      define('VALDI_ICE',  1172);
      define('VALDI_RACE', 1173);
      
      //----SOCHI----
      define('SOCHI_SUN',  1176);
      define('SOCHI_SNOW', 1177);
      define('SOCHI_ICE',  1178);
      define('SOCHI_RACE', 1179);
      
      //----SCHLADMING----
      define('SCHLADMING_SUN',  1182);
      define('SCHLADMING_SNOW', 1183);
      define('SCHLADMING_ICE',  1184);
      define('SCHLADMING_RACE', 1185);
      
      //----CUPS----
      define('WELTCUP',  98);
      define('BONUSCUP', 99);
      define('DUELL',     1);
      
      //--------------------------------------------------------------
      //Konstanten für die einzelnen Strecken und Bedingungen (Mobile)
      //--------------------------------------------------------------
      
      //----BEAVER CREEK----
      define('BEAVER_SUN_MOB',  1068);
      define('BEAVER_SNOW_MOB', 1069);
      define('BEAVER_ICE_MOB',  1070);
      define('BEAVER_RACE_MOB', 1071);
      
      //----GRÖDEN----
      define('GROEDEN_SUN_MOB',  1080);
      define('GROEDEN_SNOW_MOB', 1081);
      define('GROEDEN_ICE_MOB',  1082);
      define('GROEDEN_RACE_MOB', 1083);
      
      //----BORMIO----
      define('BORMIO_SUN_MOB',  1086);
      define('BORMIO_SNOW_MOB', 1087);
      define('BORMIO_ICE_MOB',  1088);
      define('BORMIO_RACE_MOB', 1089);
      
      //----WENGEN----
      define('WENGEN_SUN_MOB',  1092);
      define('WENGEN_SNOW_MOB', 1093);
      define('WENGEN_ICE_MOB',  1094);
      define('WENGEN_RACE_MOB', 1095);
      
      //----KITZBÜHEL----
      define('KITZ_SUN_MOB',  1098);
      define('KITZ_SNOW_MOB', 1099);
      define('KITZ_ICE_MOB',  1100);
      define('KITZ_RACE_MOB', 1101);
      
      //----GARMISCH----
      define('GARMISCH_SUN_MOB',  1104);
      define('GARMISCH_SNOW_MOB', 1105);
      define('GARMISCH_ICE_MOB',  1106);
      define('GARMISCH_RACE_MOB', 1107);
      
      //----ST.MORITZ----
      define('STMORITZ_SUN_MOB',  1110);
      define('STMORITZ_SNOW_MOB', 1111);
      define('STMORITZ_ICE_MOB',  1112);
      define('STMORITZ_RACE_MOB', 1113);
      
      //----VAL-D’ISÈRE----
      define('VALDI_SUN_MOB',  1146);
      define('VALDI_SNOW_MOB', 1147);
      define('VALDI_ICE_MOB',  1148);
      define('VALDI_RACE_MOB', 1149);
      
      //----WHISTLER MOUNTAIN----
      define('WHISTLER_SUN_MOB',  1152);
      define('WHISTLER_SNOW_MOB', 1153);
      define('WHISTLER_ICE_MOB',  1154);
      define('WHISTLER_RACE_MOB', 1155);
      
      //----SOCHI----
      define('SOCHI_SUN_MOB',  1158);
      define('SOCHI_SNOW_MOB', 1159);
      define('SOCHI_ICE_MOB',  1160);
      define('SOCHI_RACE_MOB', 1161);
      
      //----WHISTLER MOUNTAIN----
      define('SCHLADMING_SUN_MOB',  1164);
      define('SCHLADMING_SNOW_MOB', 1165);
      define('SCHLADMING_ICE_MOB',  1166);
      define('SCHLADMING_RACE_MOB', 1167);
      
      //----CUPS----
      define('WELTCUP_MOB',  100);
      define('BONUSCUP_MOB', 101);
      define('DUELL_MOB',      2);
      
      //-------------------------------------------
      //Konstanten für die einzelnen Streckennamen
      //-------------------------------------------
      define('BEAVER',     'Beaver Creek');
      define('GROEDEN',    'Gr&ouml;den');
      define('BORMIO',     'Bormio');
      define('WENGEN',     'Wengen');
      define('KITZ',       'Kitzb&uuml;hel');
      define('GARMISCH',   'Garmisch');
      define('STMORITZ',   'St. Moritz');
      define('SCHLADMING', 'Schladming');
      define('VALDI',      'Val-d\'Is&egrave;re');
      define('SOCHI',      'Sochi');
      define('WHISTLER',   'Whistler Mountain');
      define('CUP_BONUS',  'Bonuscup');
      define('CUP_WORLD',  'Weltcup');
            
      //-----------------------------------------
      //Konstanten für die einzelnen Bedingungen
      //-----------------------------------------
      define('SUN',     'Sonne');
      define('SNOW',    'Schnee');
      define('ICE',     'Eis');
      define('RACE',    'Rennen');
      define('ALL',     'All-Weather');
      
      //------------------------------------------
      //Konstanten für die verschiedene Versionen
      //------------------------------------------
      define('DESKTOP', 3447);
      define('MOBILE',  3448);
      
      //Konstante als Hilfe zum Auslesen der Kilometer, Stürze, ...
      define('ZEITID', 12);
      define('KMID', 13);
      define('STARTID', 14);
      define('ZIELID', 15);
      define('SPRUNGID', 22);
      define('KMHID', 24);
      define('STURZID', 25);
   }
?>
Aussehen tut das ganze dann in etwa so ...
Bild
Bild

LG
Magic


hmm wenn ich hier zum beispiel dein musterfile hochlade bekomme ich folgenden Fehler

Code:
Fatal error: Can't use function return value in write context in /home/httpd/vhosts/sgmols.ch/httpdocs/togo/Ski-Challenge/Live-Ranking/muster.php on line 127


hat einer idee woran das liegen könnte...

_________________


BildSC:BannerBild

SC:Banner

Platzierungen in der Vergangenheit:
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: Sa Dez 19, 2015 15:38:51 
Wengana
Wengana
Benutzeravatar
Offline

Registriert: Mi Nov 26, 2008 22:00:35
Beiträge: 307
Wohnort: Linz
Geschlecht: Männlich
Alter: 27
SC-Nickname: MagicBedda
Nationencup: Sealand
Flagge:
Ziel: Top 250
OS: Windows 10
Danke gegeben: 14
Danke bekommen: 71
 
Anscheinend wird vor PHP 5.5 keine Funktion bei empty akzeptiert und man muss
Code:
if(empty(json_decode($result_Rudi, true)))
durch
Code:
if(empty($jsonData))
ersetzen, dann sollte kein Fehler mehr auftreten.

_________________
Ergebnisse SC: immer so um die Top 500/300; SC 2010: 189.
SC:Banner SC:Banner


Nach oben
 Profil  
Mit Zitat antworten  
Für diesen Beitrag haben sich bei MagicBedda folgende User bedankt:
filu84
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: Mo Jan 18, 2016 11:39:14 
SC'ler in Ausbildung
SC'ler in Ausbildung
Benutzeravatar
Offline

Registriert: Sa Aug 07, 2010 10:56:21
Beiträge: 60
Wohnort: Steiermark
Geschlecht: Männlich
Alter: 43
SC-Nickname: kurtz
Nationencup: Team Austria
Flagge:
Ziel: Top 100
OS: Windows 8
Danke gegeben: 34
Danke bekommen: 15
 
jemand eine Idee warum die Skieinstellungen von rudi nicht mehr geladen werden können ??

ich musste das script auf FALSE setzen damit es überhaupt arbeitet. Bei TRUE bekomme ich lediglich einen Zeitüberschreitungsfehler nach 30 Sekunden.
HELP PLEASE !!!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: So Jan 24, 2016 18:28:55 
Skilehrer's Liebling
Skilehrer's Liebling
Offline

Registriert: Do Dez 25, 2008 13:23:08
Beiträge: 27
Wohnort: Oer-Erkenschwick
Geschlecht: Männlich
SC-Nickname: Oilfoot_2010
Danke gegeben: 2
Danke bekommen: 3
 
kurtz hat geschrieben:
jemand eine Idee warum die Skieinstellungen von rudi nicht mehr geladen werden können ??


Bin gerade am Suchen. Bin noch nicht ganz im Klaren über das, was da so passiert.

Da gibt's einige Merkwürdigkeiten. Kann natürlich an meinem System liegen. Also, die Zeile
Code:
if((count($helpSki) > 0) && (strlen($helpSki[0] >= 1)))

wird nicht wahr. Die erste Bedingung scheint aus unerfindlichen Gründen false zurückzuliefern, obwohl $helpSki gefüllt ist. Auch die zweite Bedingung allein liefert kein true. Wenn ich aber
Code:
         $test = strlen($helpSki[0]);
         if ($test >= 1)

stattdessen verwende, wird true erkannt und der IF-Zweig ausgeführt. Aber auch dann geht es noch nicht, denn dem Rudi fehlt die CompetitionID.

An dieser Stelle:
Code:
         if(($row[7] == $compId) && ($row[1] == $nick))
         {
            $ski = $row[3] . "-" . $row[4] . "-" . $row[5];
            break;
         }

wird die $compId nich gefunden, weil es gar kein $row[7] gibt. Es geht nur bis 6.

Ich glaube, ich muss mir doch mal das ganze Script so richtig zu Gemüte führen. Dazu war ich bisher zu faul. Aber mit Flickschusterei kommt man da wohl erstmal nicht weiter.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: So Jan 24, 2016 19:15:57 
Skilehrer's Liebling
Skilehrer's Liebling
Offline

Registriert: Do Dez 25, 2008 13:23:08
Beiträge: 27
Wohnort: Oer-Erkenschwick
Geschlecht: Männlich
SC-Nickname: Oilfoot_2010
Danke gegeben: 2
Danke bekommen: 3
 
Oilfoot hat geschrieben:
Code:
if((count($helpSki) > 0) && (strlen($helpSki[0] >= 1)))



Manchmal ist man aber auch 'was blind! Das konnte doch nie funktionieren! Da ist doch eine falsche Klammersetzung drin! Ich versuch's mal zu reparieren und poste das Ergebnis dann! Jedenfalls kann strlen($helpSki[0] >= 1) nichts sinnvolles zurückliefern!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Live Ranking
BeitragVerfasst: Do Jan 28, 2016 13:10:58 
Skilehrer's Liebling
Skilehrer's Liebling
Offline

Registriert: Do Dez 25, 2008 13:23:08
Beiträge: 27
Wohnort: Oer-Erkenschwick
Geschlecht: Männlich
SC-Nickname: Oilfoot_2010
Danke gegeben: 2
Danke bekommen: 3
 
Oilfoot hat geschrieben:
Manchmal ist man aber auch 'was blind! Das konnte doch nie funktionieren! Da ist doch eine falsche Klammersetzung drin! Ich versuch's mal zu reparieren und poste das Ergebnis dann! Jedenfalls kann strlen($helpSki[0] >= 1) nichts sinnvolles zurückliefern!


Also, ich hatte da wohl noch eine veraltete Version im Einsatz. Ohne JSON. Die aktuellste Version, die hier zu finden ist, tut es. Mit der Korrektur von hier!


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 58 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Deutsche Übersetzung durch phpBB.de
Style by ToBiMo (c) 2008
Eingebaut von eYeWoRRy
Hier wird Google Analytics verwendet
Impressum