I'm faceing a realy strange behaviour of php. The code bellow generates this queries:
Code: Select all
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-12 00:00:00' AND den_pravidelny < '2009-10-13 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-13 00:00:00' AND den_pravidelny < '2009-10-14 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-14 00:00:00' AND den_pravidelny < '2009-10-15 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-15 00:00:00' AND den_pravidelny < '2009-10-16 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-16 00:00:00' AND den_pravidelny < '2009-10-17 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-19 00:00:00' AND den_pravidelny < '2009-10-20 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-20 00:00:00' AND den_pravidelny < '2009-10-21 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-21 00:00:00' AND den_pravidelny < '2009-10-22 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-22 00:00:00' AND den_pravidelny < '2009-10-23 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-23 00:00:00' AND den_pravidelny < '2009-10-24 00:00:00' AND pomocne_id = 146;
SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '2009-10-26 23:00:00' AND den_pravidelny < '2009-10-27 23:00:00' AND pomocne_id = 146;
Code: Select all
foreach($pravidelne AS $prav){
$date = strtotime(date('Y-m-d').' 00:00:00');
$pokracovat = true;
$limit = $date + PLANOVANI*7*24*60*60;
while($pokracovat){
//print_r($prav);
if(isset($prav[date('N',$date)]) && $prav[date('N',$date)] == 1){
echo "SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '".date('Y-m-d H:i:s',$date)."' AND den_pravidelny < '".date('Y-m-d H:i:s',$date+60*60*24)."' AND pomocne_id = ".$prav['id'].";";
$kontrola =& $db->getCol("SELECT COUNT(*) FROM rm_task WHERE den_pravidelny > '".date('Y-m-d H:i:s',$date)."' AND den_pravidelny < '".date('Y-m-d H:i:s',$date+60*60*24)."' AND pomocne_id = ".$prav['id'].";");
if(DB::isError($kontrola)) die('[ERROR 004:]'.$kontrola->getMessage());
if($kontrola[0] == 0){
$vOd = explode(' ',$prav['resit_od']);
$vDo = explode(' ',$prav['resit_do']);
$vals = array(
'resit_od' => date('Y-m-d',$date).' '.$vOd[1],
'resit_do' => date('Y-m-d',$date).' '.$vDo[1],
'projekt' => -1,
'nazev' => $prav['nazev'],
'resitel' => $p['id'],
'zadano' => date('Y-m-d H:i:s'),
'osobni' => 1,
'pomocne_id' => $prav['id'],
'den_pravidelny' => date('Y-m-d',$date).' '.$vOd[1]
);
$je_neco =& $db->getCol("SELECT COUNT(*) FROM rm_task WHERE resit_od < '".$vals['resit_do']."' AND resit_do > '".$vals['resit_od']."' AND resitel = ".$p['id']." AND osobni = 0;");
if(DB::isError($je_neco)) die('[ERROR 005:]'.$je_neco->getMessage());
//print_r($vals);
if($je_neco[0]==0){
//echo "sdasdas\n";
$ins =& $db->autoExecute('rm_task',$vals,DB_AUTOQUERY_INSERT);
if(DB::isError($ins)) die('[ERROR006:]'.$ins->getMessage());
};
};
};
$date+=60*60*24;
if($limit < $date) $pokracovat = false;
};