[insert_php]
function show_top_ten_racers($top_ten_racers, $description) {
echo ‚
‚.$description.‘
Poradie: | Meno a priezvisko: | Rok narodenia: | Klub: | Krajina: | Počet bodov: |
---|---|---|---|---|---|
‚.$i.‘ | if($top_ten_racers[1][$key][2] != ‚0‘) { echo $top_ten_racers[1][$key][2]; } else { echo ‚- – – – -‚; } echo ‚ |
if($top_ten_racers[1][$key][3] != “) { echo $top_ten_racers[1][$key][3]; } else { echo ‚- – – – -‚; } echo ‚ |
if($top_ten_racers[1][$key][5] != “) { echo $top_ten_racers[1][$key][5]; } else { echo ‚- – – – -‚; } echo ‚ |
‚;
}
function sec2time($seconds) {
$hours = floor($seconds / (60 * 60));
$divisor_for_minutes = $seconds % (60 * 60);
$minutes = floor($divisor_for_minutes / 60);
$divisor_for_seconds = $divisor_for_minutes % 60;
$seconds = ceil($divisor_for_seconds);
if (strlen($hours) < 2) {
$hours = '0'.$hours;
}
if (strlen($minutes) < 2) {
$minutes = '0'.$minutes;
}
if (strlen($seconds) < 2) {
$seconds = '0'.$seconds;
}
return $hours.':'.$minutes.':'.$seconds;
}
function display_time($time) {
if ($time == '0') {
return '- - - - -';
} else {
return sec2time($time);
}
}
function display_points($time, $best_time, $limit){
if ($time > 0) {
$points = round((($limit-$time)/($limit-$best_time))*1000);
return $points;
} else {
return 0;
}
}
function total_rank($time, $racer_id, $race) {
if ($time == ‚0‘) {
return ‚- – – – -‚;
} else {
$sql_rank = ‚SELECT racer_id FROM skyrunning_results_2016 WHERE ‚.$race.‘ != \’0\‘ ORDER BY ‚.$race.‘ ASC;‘;
$q_rank = mysql_query($sql_rank);
while ($id = mysql_fetch_row($q_rank)) {
$ids[] = $id[0];
}
$total_ranking = array_search($racer_id, $ids);
if($total_ranking !== false) {
$total_ranking = $total_ranking + 1;
} else {
$total_ranking = ‚—‚;
}
return ($total_ranking);
}
}
function get_best_time($race) {
$sql_times = ‚SELECT min(‚.$race.‘) as min FROM skyrunning_results_2016 WHERE ‚.$race.‘ != \’0\‘;‘;
$q_times = mysql_query($sql_times);
$time = mysql_fetch_row($q_times);
return $time[0];
}
function get_top_ten_points ($races, $gender, $best_times, $limits) {
foreach($races as $race) {
$sql_top_ten = ‚SELECT result.racer_id, result.‘.$race.‘, racer.first_name, racer.last_name, racer.year, racer.club, racer.gender, racer.country
FROM skyrunning_results_2016 as result
LEFT JOIN skyrunning_racer as racer ON racer.racer_id = result.racer_id
WHERE result.‘.$race.‘ != \’0\‘ AND racer.gender = \“.$gender.’\‘ ORDER BY ‚.$race.‘ ASC;‘;
$q_top_ten = mysql_query($sql_top_ten);
while($top_ten = mysql_fetch_row($q_top_ten)) {
$points = display_points($top_ten[1], $best_times[$race], $limits[$race]);
if($top_tens[$top_ten[0]]) {
$top_tens[$top_ten[0]] = ($top_tens[$top_ten[0]]+$points);
} else {
$top_tens[$top_ten[0]] = $points;
$top_tens_info[$top_ten[0]] = array($top_ten[2], $top_ten[3], $top_ten[4], $top_ten[5], $top_ten[6], $top_ten[7]);
}
}
}
arsort($top_tens);
return array($top_tens, $top_tens_info);
}
$mysql = mysql_connect(‚c119um.forpsi.com:3306‘, ‚f75974‘, ‚@nt1k2011@nt1k‘) or die (-1);
//$mysql = mysql_connect(‚mysql51.websupport.sk:3309‘, ‚vitalcity_srm‘, ‚6onBoHof&‘) or die (-1);
$mysql = mysql_select_db(‚f75974‘) or die(-1);
$vsr_best_time = get_best_time(‚vsr2016‘);
$poludnica_best_time = get_best_time(‚poludnica2016‘);
$kh_best_time = get_best_time(‚kh2016‘);
$selma2016_vertical_best_time = get_best_time(‚selma2016_vertical‘);
$selma2016_ultra_best_time = get_best_time(‚selma2016_ultra‘);
$klin2016_best_time = get_best_time(‚klin2016‘);
$chopok2016_best_time = get_best_time(‚chopok2016‘);
$races = array(‚vsr2016′,’poludnica2016′,’kh2016′,’selma2016_vertical‘,’selma2016_ultra‘, klin2016, chopok2016);
$races_best_times = array( ‚vsr2016‘ => $vsr_best_time, ‚poludnica2016‘ => $poludnica_best_time, ‚kh2016‘ => $kh_best_time , ‚selma2016_vertical‘ => $selma2016_vertical_best_time, ‚selma2016_ultra‘ => $selma2016_ultra_best_time, ‚klin2016‘ => $klin2016_best_time, ‚chopok2016‘ => $chopok2016_best_time);
$races_limit = array(‚vsr2016‘ => ‚21600‘, ‚poludnica2016‘ => ‚21600‘, ‚kh2016‘ => ‚7200‘, ‚selma2016_vertical‘ => ‚7200‘, ‚selma2016_ultra‘ => ‚41400‘, ‚klin2016‘ => ‚14400‘, ‚chopok2016‘ => ‚30600‘);
$top_ten_racers_male = get_top_ten_points ($races, ‚M‘, $races_best_times, $races_limit);
$keys_male = array_keys($top_ten_racers_male[0]);
$top_ten_racers_female = get_top_ten_points ($races, ‚F‘, $races_best_times, $races_limit);
$keys_female = array_keys($top_ten_racers_female[0]);
echo ‚
‚;
$racer_id = trim($_GET[‚rid‘]);
$racer_id = intval($racer_id);
if($racer_id == NULL || !is_int($racer_id)) {
$racer_id = ‚0‘;
show_top_ten_racers($top_ten_racers_male, ‚Muži – Absolútne poradie‘);
show_top_ten_racers($top_ten_racers_female, ‚Ženy – Absolútne poradie‘);
echo ‚
- Každým pretekom v lige SSkyA je priradených 1000 bodov
- Hodnotení sú všetci pretekári, ktorí dobehnú v limite pretekov
- Víťaz pretekov dostáva 1000 bodov
- Nulu dostávajú pretekári, ktorí nestihnú limit
- Zvyšním pretekárom je priradená pomerná časť bodov podľa vzorca:
získané body = (časový limit – môj čas)/(časový limit – čas víťaza)*1000
‚;
} else {
$sql = ‚SELECT racer.first_name, racer.last_name, racer.year, racer.club, racer.gender, racer.country, results_2016.vsr2016, results_2016.poludnica2016, results_2016.kh2016, results_2016.selma2016_vertical, results_2016.selma2016_ultra, results_2016.klin2016, results_2016.chopok2016
FROM skyrunning_racer AS racer
LEFT JOIN skyrunning_results_2016 AS results_2016 ON racer.racer_id = results_2016.racer_id
WHERE racer.racer_id = \“.$racer_id.’\‘;‘;
$q = mysql_query($sql);
while($racer = mysql_fetch_row($q)) {
echo ‚‚.
$racer[0].‘ ‚.$racer[1].‘
Rok narodenia : ‚.$racer[2].‘
Kategória : ‚.$racer[4].‘
Klub : ‚.$racer[3].‘
Národnosť : ‚.$racer[5].‘‚;
$vsr_points = display_points($racer[6], $vsr_best_time, $races_limit[vsr2016]);
$poludnica_points = display_points($racer[7], $poludnica_best_time, $races_limit[poludnica2016]);
$kh_points = display_points($racer[8], $kh_best_time, $races_limit[kh2016]);
$selma_vertical_points = display_points($racer[9], $selma2016_vertical_best_time, $races_limit[selma2016_vertical]);
$selma_ultra_points = display_points($racer[10], $selma2016_ultra_best_time, $races_limit[selma2016_ultra]);
$klin_points = display_points($racer[11], $klin2016_best_time, $races_limit[klin2016]);
$chopok_points = display_points($racer[12], $chopok2016_best_time, $races_limit[chopok2016]);
$points_sum = $vsr_points + $poludnica_points + $kh_points + $selma_vertical_points + $selma_ultra_points+$klin_points+$chopok_points;
if($racer[4] == ‚M‘) {
$ranking = array_search($racer_id, $keys_male);
} else {
$ranking = array_search($racer_id, $keys_female);
}
if($ranking !== false) {
$ranking = $ranking + 1;
} else {
$ranking = ‚—‚;
}
echo ‚
Rok 2016:
Názov podujatia: | Čas (H:M:S): | Abs. poradie: | Počet bodov: |
---|---|---|---|
Vitalcity SkyRace 2016 | |||
Poludnica run | |||
Kráľová hoľa VK | |||
Tatranská šelma Vertical | |||
Tatranská šelma Ultra | |||
Vysokohorský beh cez Klin | |||
Sky Marathon Chopok | |||
‚;
echo ‚‚;
echo ‚‚;
echo ‚‚;
echo ‚
- Každým pretekom v lige SSkyA je priradených 1000 bodov
- Hodnotení sú všetci pretekári, ktorí dobehnú v limite pretekov
- Víťaz pretekov dostáva 1000 bodov
- Nulu dostávajú pretekári, ktorí nestihnú limit
- Zvyšním pretekárom je priradená pomerná časť bodov podľa vzorca:
získané body = (časový limit – môj čas)/(časový limit – čas víťaza)*1000
‚;
}
}
[/insert_php]