• 29-01-2014, 18:38:46
    #1
    function taksitHesap($taksit,$para){
    	$dizi 	 = array();
    	$date    = date('d-m-Y');  
    	for ($sayac = 1; $sayac <= $taksit ; $sayac++ ) {
    		@$dizi['taksitSayisi'] 	.= $sayac;
    		@$dizi['taksitPara']	.= round($para/$sayac,2);
    		@$dizi['taksitTarih']	.= date( "d-m-Y", strtotime("$date,+$sayac month")).'<br>';
    	}
        return $dizi;
    }  
    	$taksitArray = taksitHesap(12,1000);
    	$taksitSayi	 = $taksitArray["taksitSayisi"];
    	$taksitPara	 = $taksitArray["taksitPara"];
    	$taksitTarih = $taksitArray["taksitTarih"];
    	echo '
    		<table class="table span8 kapsa">
    				<thead>
    					<tr>
    						<th>Taksit Sayısı</th>
    						<th>Aylık Taksit Miktarı</th>
    						<th>Aylık Taksit Tarihleri</th>
    					</tr>
    				</thead>
    				<tbody>
    	';
    
    			foreach($taksitSayi as $taksitSayisi){
    				foreach($taksitPara as $taksitParasi){
    					foreach($taksitTarih as $taksitTarihi){
    						echo '
    							<tr>
    								<td>'.$taksitSayisi.'</td>
    								<td>'.$taksitParasi.'</td>
    								<td>'.$taksitTarihi.'</td>
    							</tr>
    						';
    					}
    				}
    			}
    			
    			
    	echo '
    				</tbody>
    		</table>
    	';
    ?>
    Nerede hata var?
    Invalid argument supplied for foreach() hatası alıyorum
  • 29-01-2014, 21:11:20
    #2
    Üyeliği durduruldu
    taksitHesap fonksiyonu içindeki $dizi değerlerinin sonuna da köşeli parantez eklemen gerek ki array olabilsin.

    Şu şekilde: $dizi['taksitSayisi'][]

    Ayrıca kullandığın yöntem çok sağlıklı çalışmaz, herhangi bir $dizi değeri boş döndüğü anda tüm sıralama kayar, değerler birbirine girer.
  • 29-01-2014, 23:14:22
    #3
    <?php
    function taksitHesap($taksit,$para){
    	$hesapla=$taksit*number_format($para,2, '.', '');
    	
    	return $hesapla;
    }
    
    
    
    echo '
    	<table class="table span8 kapsa"> 
    		<thead> 
    			<tr> 
    				<th>Taksit Sayısı</th> 
    				<th>Aylık Taksit Miktarı</th> 
    				<th>Aylık Taksit Tarihleri</th> 
    			</tr> 
    		</thead> 
    	<tbody> 
    ';
    
    $date    = date('d-m-Y');
    $taksit='12'; // Kaç ay taksit olacak
    $fiyat='500'; //ürün fiyatı
    
    $hesap=$fiyat/$taksit;
    for($i=1; $i<=$taksit; $i++){
    echo '
    	<tr> 
    		<td>'.$i.'</td> 
    		<td>'.taksitHesap($i,$hesap).'</td> 
    		<td>'.date( "d-m-Y", strtotime("$date,+$i month")).'<br>'.'</td> 
    	</tr> 
    ';
    }
    echo '
                    </tbody> 
            </table> 
    ';
    ?>
    bu işinize yararmı?
  • 30-01-2014, 10:42:29
    #4
    Teşekkür ederim.

    function taksitHesap($taksit,$para,$birim){
    	$dizi 	 = array();
    	$date    = date('d-m-Y');  
    	$indis 	 = 0;
    	for ($sayac = 1; $sayac <= $taksit ; $sayac++ ) {
    		$taksitPara	=	round($para/$sayac,2);
    		$ekTaksit	=	$taksitPara+1 .' TL';
    		$toplamPara	=	round($ekTaksit*$sayac,2).' TL';
    		@$dizi[$indis]['taksitSayisi'] 	.= $sayac;
    		@$dizi[$indis]['taksitPara']	.= $ekTaksit;
    		@$dizi[$indis]['taksitToplam']	.= $toplamPara;
    		@$dizi[$indis]['taksitTarih']	.= date( "d-m-Y", strtotime("$date,+$sayac month"));
    		$indis++;
    	}
        return $dizi;
    }  
    
    $taksitArray = taksitHesap(12,1000,'TL');
     echo '
    <table class="table span8 kapsa">
           <thead>
    		<tr>
    		     <th>Taksit Sayısı</th>
    		     <th>Taksit('.$dovyaz["doviz_simge"].')</th>
    		     <th>Toplam('.$dovyaz["doviz_simge"].')</th>
    		</tr>
    	</thead>
    	<tbody>
    	';
    		foreach($taksitArray as $taksitDeger){
    			#<td>'.$taksitDeger['taksitTarih'].'</td>
    			echo '
    			<tr>
    			    <td>'.$taksitDeger['taksitSayisi'].'</td>
    			    <td>'.$taksitDeger['taksitPara'].'</td>
    			    <td>'.$taksitDeger['taksitToplam'].'</td>
    			</tr>
    		        ';
    		}
    echo '
    </tbody>
    </table>
    ';
  • 31-01-2014, 11:27:01
    #5
    Şu anda hesaplamada yanlış yapıyor.

    Son tutarı toplam tutardan çıkartıp koyarsanız kusurat düzelmiş olacak.

    Alıntı
    12 84.33 TL 1011.96 TL