Connect(); $driver=[]; $query='SELECT `number`,`name`,`color`,`rank` FROM `'.YEAR.'_driver` ORDER BY `order` ASC;'; $stmt=$db->Query($query,array(),array('line'=>__LINE__)); while($result=$stmt->fetch(PDO::FETCH_ASSOC)) $driver[]=$result; $history=[]; $query='SELECT `number`,`lap`,`time` FROM `'.YEAR.'_'.RACE.'` WHERE `lap` > 0 ORDER BY `number` ASC,`lap` ASC;'; $stmt=$db->Query($query,array(),array('line'=>__LINE__)); while($result=$stmt->fetch(PDO::FETCH_ASSOC)) $history[]=$result; $db->Disconnect(); $data=(string)""; $drivers=(string)""; $max=(float)0; $min=(float)0; $series=(string)""; $total_time=[]; $reader_time=[]; if(isset($_REQUEST['gap'])){ //*** ドライバーごとの通算タイム ***// foreach($driver as $driver_array){ foreach($history as $history_array){ if($history_array['number']!==$driver_array['number']) continue; if(!isset($total_time[$driver_array['number']])) $total_time[$driver_array['number']]=[$history_array['time']]; else $total_time[$driver_array['number']][]=$history_array['time']+end($total_time[$driver_array['number']]); } } //*** ラップリーダーのタイムを取得 ***// for($l=1;;$l++){ $reader=(int)0; foreach($driver as $driver_array){ if(!isset($total_time[$driver_array['number']][($l-1)])) continue; if(!$reader || $reader>$total_time[$driver_array['number']][($l-1)]) $reader=$total_time[$driver_array['number']][($l-1)]; } if(!$reader) break; $reader_time[]=$reader; } } foreach($driver as $driver_array){ $laps=(string)""; foreach($history as $history_array){ if($history_array['number']!==$driver_array['number']) continue; if(!isset($_REQUEST['gap'])){ if($laps) $laps.=","; $laps.="[{$history_array['lap']},{$history_array['time']}]"; if(!$min || $min>$history_array['time']) $min=$history_array['time']; } else{ if(!$laps) $laps="[0,0]"; $laps.=",[".$history_array['lap'].",".($total_time[$driver_array['number']][($history_array['lap']-1)]-$reader_time[($history_array['lap']-1)])."]"; } } if($laps){ $data.=" {$driver_array['name']}=[{$laps}];\n"; if($drivers) $drivers.=","; $drivers.=$driver_array['name']; $marker='red'; if($driver_array['rank']!=='fir') $marker='yellow'; if($series) $series.=","; $series.="{ label:'{$driver_array['number']} {$driver_array['name']}','color':'{$driver_array['color']}','markerOptions':{'color':'{$marker}'} }"; } } if(!isset($_REQUEST['gap'])){ $max=$min-0.5; $min=$max+10; }else{ $max=90; $min=0; } ?> <?php echo YEAR.'_'.RACE;?>