nurettin adlı üyeden alıntı: mesajı görüntüle
Bir yol buldum ama manuel ve sorunlu çalışacak. bunu bir döngüye sizce nasıl alabilirim.

$gun_sayisi = (($out_date - $in_date) /60/60/24);

echo 'Toplam Gün: '.$gun_sayisi;
echo '<hr>';


$donemsel_fiyat = $db->get_row("select tarih_ucret,id,tarih_bitis from donemsel_fiyatlar where is_id='". $db->escape($is_id)."' and  tarih_baslangic>=$in_date and (tarih_bitis>=$out_date or tarih_bitis<$out_date) order by tarih_baslangic asc limit 1");
burada şöyle bir algoritma düşündüm. Gün sayısı toplamını buluncaya sql sorgusunu yapması.

Örnegin gün sayısı 5 ilk dönemsel fiyat içerisinde olsa. (varsayalım belirlenmiş 10 günlük dönemsel fiyat içerisinde)

tek sorgu bitecek.

20 gün sayısı oldu diyelim.

Burada
1. dönemsel fiyattan 1 gün. (dönemsel fiyatın son gününe denk geliyor diyelim)
2. dönemsel fiyattan (sonraki dönemsel fiyatın hepsini kapsıyor. 17)

Toplam 18 gün yaptı.

3. dönemsel fiyattan ise ilk 2 günü karşılıyor.

Bu durumda hesap şu şekilde olacak

Fiyat Tablosu:
1. dönem = 30
2. dönem = 40
3. dönem = 50

1*30 = 30
17*40 = 680
2 * 50 = 100

Toplam 850 TL işçinin alacağı çıkıyor.

Buradaki koşulu döngüye sokmak gerekiyor çünkü bu çalışma süresi 1 yılda olabilir.


function tarihbul($baslangic,$bitis) {
	$kes1=explode('.',$baslangic); 
	$kes2=explode('.',$bitis); 
	$time1=mktime(0,0,0,$kes1[1],$kes1[0],$kes1[2]); 
	$time2=mktime(0,0,0,$kes2[1],$kes2[0],$kes2[2]); 
	$total = array();
	while($time1<=$time2) {
		$x=date('d.m.Y', ($time1)); 
		$xy = strtotime($x);
			$getir = mysql_query("select * from donemsel_fiyatlar where tarih_baslangic<$xy and tarih_bitis>$xy");
			$row = mysql_fetch_array($getir);
			$ucret = $row["tarih_ucret"];
			$total[] = $ucret;
		$time1=$time1+86400; 
	}
	return array_sum($total);
}
$baslangic = "31.03.2014"; 
$bitis = "29.05.2014"; 
echo tarihbul($baslangic,$bitis);
// Çıktısı 10150
İş görürmü ?