04. marts 2010 - 19:59
Der er
4 kommentarer og
1 løsning
kan ikke opdatatere min database!
Jeg har problemer med at opdatere min database, hvis det er formange rækker på en gang!
hvis jeg kører min kode med et maks på foreksempel 10 rækker fungerer det fint, men hvis det er 1000 rækker sker der intet.
Er der en form for timeout i mysql når man opdatere?
05. marts 2010 - 18:46
#4
her kommer lidt kode, skriv hvis det ikke er nok!
public function calcWtEvent($tableName,$event)
{
$getTimeInfo = new Database;
$getTimeInfo -> select($tableName,'*, TIMEDIFF(Finishtime_individual,Starttime_official) as officialFinish, TIMEDIFF(Finishtime_individual,Starttime_individual) as officialFinish_net','Event_id = "'.$event.'" AND Start_number < 2000');
$getRaceInfo = new Database;
foreach($getTimeInfo -> result as $timeResult)
{
$getRaceInfo -> select('wt_races','*','Event_id = "'.$event.'" AND Race_id = "'.$timeResult['Race_id'].'"');
$officialFinish = $timeResult['officialFinish'];
$officialCalcFinish = $timeResult['officialFinish_net'];
$timeInSec = $this -> time_to_sec($officialFinish);
$timeInSec_net = $this -> time_to_sec($officialCalcFinish);
$secPrKm = ($timeInSec)/$getRaceInfo -> result[0]['Race_distance'];
$kmPrMin = $this -> secondsToTime($secPrKm);
$minkm = $kmPrMin;
$secPrKm_net = ($timeInSec_net)/$getRaceInfo -> result[0]['Race_distance'];
$kmPrMin_net = $this -> secondsToTime($secPrKm_net);
$minkm_net = $kmPrMin_net;
@$avg_speed = ($getRaceInfo -> result[0]['Race_distance']/$timeInSec) * 3600;
@$avg_speed_net = ($getRaceInfo -> result[0]['Race_distance']/$timeInSec_net) * 3600;
$kmt = $avg_speed;
$kmt_net = $avg_speed_net;
$upd = new Database;
$insArray = array('Timeofficial_calc' => $officialFinish,'Timeofficial_calc_net' => $officialCalcFinish,'Speed_avg_kmt' => $kmt, 'Speed_avg_kmt_net' => $kmt_net,'Speed_avg_minkm' => $minkm,'Speed_avg_minkm_net' => $minkm_net);
foreach($insArray as $key => $value)
{
$upd -> update($tableName,$key,$value,'Event_id = "'.$event.'" AND Race_id = "'.$timeResult['Race_id'].'" AND Start_number = "'.$timeResult['Start_number'].'"');
}
}
}
public function time_to_sec($time) {
$hours = substr($time, 0, -6);
$minutes = substr($time, -5, 2);
$seconds = substr($time, -2);
return $hours * 3600 + $minutes * 60 + $seconds;
}
public function secondsToTime($seconds)
{
$ret = "";
$hours = intval(intval($seconds) / 3600);
if($hours > 0 && $hours < 10)
{
$ret .= "0".$hours.":";
}elseif($hours <= 0)
{
$ret .= "00:";
}else{
$ret .= $hours.":";
}
$minutes = bcmod((intval($seconds) / 60),60);
if($minutes >= 10)
{
$ret .= $minutes.":";
}elseif($minutes < 10 && $minutes >=1)
{
$ret .= "0".$minutes.":";
}else{
$ret .= "00:";
}
$seconds = bcmod(intval($seconds),60);
if($seconds >= 10)
{
$ret .= $seconds;
}else{
$ret .= "0".$seconds;
}
return $ret;
}