Programación Web y Scripting > PHP
como poner los datos de esta tabla en arrays?
(1/1)
gokufast:
hola amigos tengo la siguiente duda, primero genero la tabla:
--- Código: PHP ---<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title><style type="text/css"><!--.style1 {font-size: 10px}.style2 {font-size: 10px; font-weight: bold; }--></style></head><body><? $monto = 11188;$interes_mes_1 = 0.08/12;/*$monto*(8/12/100);*/$amortizacion_mes_1 = $cuota_mes - $interes_mes_1;$acumulada_mes_1 = $amortizacion_mes_1;$pendiente_mes_1 = $monto - $amortizacion_mes_1;$meses = 18;$cuota_mes = $monto/((1-(1/pow((1+$interes_mes_1),$meses)))/$interes_mes_1);?><table width="361" border="0" cellspacing="2" cellpadding="1"> <tr> <td width="295"><div align="right" class="style2">MONTO</div></td> <td width="56"><div align="right" class="style2"><? echo $monto; ?></div></td> </tr> <tr> <td width="295"><div align="right" class="style2">INTERES MENSUAL </div></td> <td width="56"><div align="right" class="style2"><? echo number_format($interes_mes_1,2); ?></div></td> </tr> <tr> <td width="295"><div align="right" class="style2">TIEMPO DE PAGO EN MESES </div></td> <td width="56"><div align="right" class="style2"><? echo $meses; ?></div></td> </tr> <tr> <td width="295"><div align="right" class="style2">CUOTA MES EN USD </div></td> <td width="56"><div align="right" class="style2"><? echo $cuota_mes; ?></div></td> </tr></table><br /><table width="600" border="1" cellspacing="1" cellpadding="1"> <tr> <td width="33"><div align="center"><span class="style1"></span></div></td> <td width="110"><div align="center" class="style1"><strong>AMORTIZACION</strong></div></td> <td width="110"><div align="center" class="style1"><strong>INTERES</strong></div></td> <td width="110"><div align="center" class="style1"><strong>TOTAL</strong></div></td> <td colspan="2"><div align="center" class="style1"><strong>AMORTIZACION</strong></div></td> </tr> <tr> <td width="33"><div align="center" class="style1"><strong>nro</strong></div></td> <td width="110"><div align="center" class="style1"><strong>MES</strong></div></td> <td width="110"><div align="center" class="style1"><strong>MES</strong></div></td> <td width="110"><div align="center" class="style1"><strong>MES</strong></div></td> <td width="110"><div align="center" class="style1"><strong>ACUMULADA</strong></div></td> <td width="110"><div align="center" class="style1"><strong>PENDIENTE</strong></div></td> </tr> <? $amort=0; $inter=0; $cuota=0; $acumu=0; $pendi=$monto; function roundo($valor) { $float_redondeado=round($valor * 100) / 100; return $float_redondeado;} for($x=0;$x<=$meses;$x++){ ?> <tr> <td width="33"> <span class="style2"><? echo $x;?></span></td> <td width="110"><span class="style2"><? echo $amort; ?></span></td> <td width="110"><span class="style2"><? echo $inter; $inter=$pendi*8/12/100;?></span></td> <td width="110"><span class="style2"><? echo $cuota; $cuota=$cuota_mes*1;?></span></td> <td width="110"><span class="style2"><? echo $acumu; ?></span></td> <td width="110"><span class="style2"><? echo $pendi; $amort=$cuota-$inter; $pendi=$pendi-$amort; $acumu=$acumu+$amort;?></span></td> </tr> <? } ?></table> </body></html> los datos de cada columna lo quiero ingresar en un array por ejemplo un array que sea amortizacion y que tenga todos los datos desde el 1 al 18.
otro array que sea interes y que tenga todos los datos del 1 al 18 y asi tener un array para cada columna y que guarde todos los datos que la tabla contiene.
ademas ver si ingresando todo en arrays sea mas facil para ingresarlo en una base de datos, para poder la misma tabla posteriormente.
existe el problema es que esa tabla es para amortizacion de prestamos, y cada prestamo tiene su tabla, e ingresarla fila a fila a una BD me generaria muchisima redundancia, es por eso que estoy viendo si el uso de arrays seria la mejor opcion, asi en lugar de tener 18 filas y en cada fila repetido el nombre del socio, y su numero, solamente tendria una fila.
o estoy equivocado? XD
gokufast:
bueno seria algo asi, puede que no sea el mismo codigo pero la idea es esta.
--- Código: PHP ---$interes_tabla_1 = $interes_mes_1_tabla_1;$interes_array_1 = array();$amortizacion_tabla_1 = $amortizacion_mes_1_tabla_1;$amortizacion_array_1 = array();$cuota_tabla_1 = $cuota_mensual;$cuota_array_1 = array();$acumulada_tabla_1 = $amortizacion_tabla_1;$acumulada_array_1 = array();$pendiente_tabla_1 = $pendiente_mes_1_tabla_1;$pendiente_array_1 = array();for($y=1;$y<=$plazo_meses;$y++){ $interes_array_1[] = $interes_tabla_1; $interes_tabla_1=round(($pendiente_tabla_1*$interes_mensual),2); $amortizacion_array_1[] = $amortizacion_tabla_1; $amortizacion_tabla_1=round(($cuota_tabla_1-$interes_tabla_1),2); $cuota_array_1[] = $cuota_tabla_1; $cuota_tabla_1 = round(($interes_tabla_1 + $amortizacion_tabla_1),2); $acumulada_array_1[] = $acumulada_tabla_1; $acumulada_tabla_1= round(($acumulada_tabla_1+$amortizacion_tabla_1),2); $pendiente_array_1[] = $pendiente_tabla_1; $pendiente_tabla_1=round(($pendiente_tabla_1-$amortizacion_tabla_1),2);}
Darkfirephoenix:
Aquí esta mi solucion particular, uso un arreglo bidimensional para almacenar todos los valores y dibujo la tabla en base al arreglo:
--- Código: PHP --- <html><head><title>Array</title><style type="text/css"><!--.style1 {font-size: 10px; font-weight: bold;}.style2 {font-size: 10px; font-weight: bold; vertical-align:center; }--></style></head><body><? $monto = 11188; $interes_mes_1 = 0.08/12; $amortizacion_mes_1 = $cuota_mes - $interes_mes_1; $acumulada_mes_1 = $amortizacion_mes_1; $pendiente_mes_1 = $monto - $amortizacion_mes_1; $meses = 18; $cuota_mes = $monto/((1-(1/pow((1+$interes_mes_1),$meses)))/$interes_mes_1); $pendi=$monto; function roundo($valor) { $float_redondeado=round($valor * 100) / 100; return $float_redondeado; } for($x=0;$x<=$meses;$x++){ //$Tabla_resultados almacena todos los valores, cada columna([0]-[5]) equivale a una columna de la tabla. $tabla_resultados[0][$x]=$x; $tabla_resultados[1][$x]=$amort; $tabla_resultados[2][$x]=$inter; $inter=$pendi*8/12/100; $tabla_resultados[3][$x]=$cuota; $cuota=$cuota_mes*1; $tabla_resultados[4][$x]=$acumu; $tabla_resultados[5][$x]=$pendi; $amort=$cuota-$inter; $pendi=$pendi-$amort; $acumu=$acumu+$amort;}?> <table width="600" border="1" cellspacing="1" cellpadding="1"> <tr align="center" class="style1"> <td width="33"></td> <td width="110">AMORTIZACION<td> <td width="110">INTERES</td> <td width="110">TOTAL</td> <td colspan="2">AMORTIZACION</td> </tr> <tr align="center" class="style1"> <td width="33">nro</td> <td width="110">MES</td> <td width="110">MES</td> <td width="110">MES</td> <td width="110">ACUMULADA</td> <td width="110">PENDIENTE</td> </tr> <?php for($x=0;$x<=$meses;$x++) //$x equivale al índice de las filas { echo("<tr class='style2'>"); for($y=0;$y<=(count($tabla_resultados)-1);$y++) //$y es usado como indice de columnas([0]-[5] cuando se almacenaron los datos) { echo("<td>"); echo($tabla_resultados[$y][$x]); echo("</td>"); } echo("</tr>"); }?> <table></body></html>
Lo hice de esa forma porque considero mas difícil sacar los datos de una tabla.
Saludos!
gokufast:
super!!, gracias intentare de esa forma.
Navegación
Ir a la versión completa