SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: gokufast en Jueves 19 de Marzo de 2009, 14:04

Título: como poner los datos de esta tabla en arrays?
Publicado por: gokufast en Jueves 19 de Marzo de 2009, 14:04
hola amigos tengo la siguiente duda, primero genero la tabla:
Código: PHP
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  5. <title>Untitled Document</title>
  6. <style type="text/css">
  7. <!--
  8. .style1 {font-size: 10px}
  9. .style2 {font-size: 10px; font-weight: bold; }
  10. -->
  11. </style>
  12. </head>
  13. <body>
  14. <?
  15.  
  16. $monto = 11188;
  17. $interes_mes_1 = 0.08/12;/*$monto*(8/12/100);*/
  18. $amortizacion_mes_1 = $cuota_mes - $interes_mes_1;
  19. $acumulada_mes_1 = $amortizacion_mes_1;
  20. $pendiente_mes_1 = $monto - $amortizacion_mes_1;
  21. $meses = 18;
  22. $cuota_mes = $monto/((1-(1/pow((1+$interes_mes_1),$meses)))/$interes_mes_1);
  23. ?>
  24. <table width="361" border="0" cellspacing="2" cellpadding="1">
  25.   <tr>
  26.     <td width="295"><div align="right" class="style2">MONTO</div></td>
  27.     <td width="56"><div align="right" class="style2"><? echo $monto; ?></div></td>
  28.   </tr>
  29.   <tr>
  30.     <td width="295"><div align="right" class="style2">INTERES MENSUAL </div></td>
  31.     <td width="56"><div align="right" class="style2"><? echo number_format($interes_mes_1,2); ?></div></td>
  32.   </tr>
  33.   <tr>
  34.     <td width="295"><div align="right" class="style2">TIEMPO DE PAGO EN MESES </div></td>
  35.     <td width="56"><div align="right" class="style2"><? echo $meses; ?></div></td>
  36.   </tr>
  37.   <tr>
  38.     <td width="295"><div align="right" class="style2">CUOTA MES EN USD </div></td>
  39.     <td width="56"><div align="right" class="style2"><? echo $cuota_mes; ?></div></td>
  40.   </tr>
  41. </table>
  42. <br />
  43. <table width="600" border="1" cellspacing="1" cellpadding="1">
  44.   <tr>
  45.     <td width="33"><div align="center"><span class="style1"></span></div></td>
  46.     <td width="110"><div align="center" class="style1"><strong>AMORTIZACION</strong></div></td>
  47.     <td width="110"><div align="center" class="style1"><strong>INTERES</strong></div></td>
  48.     <td width="110"><div align="center" class="style1"><strong>TOTAL</strong></div></td>
  49.     <td colspan="2"><div align="center" class="style1"><strong>AMORTIZACION</strong></div></td>
  50.   </tr>
  51.   <tr>
  52.     <td width="33"><div align="center" class="style1"><strong>nro</strong></div></td>
  53.     <td width="110"><div align="center" class="style1"><strong>MES</strong></div></td>
  54.     <td width="110"><div align="center" class="style1"><strong>MES</strong></div></td>
  55.     <td width="110"><div align="center" class="style1"><strong>MES</strong></div></td>
  56.     <td width="110"><div align="center" class="style1"><strong>ACUMULADA</strong></div></td>
  57.     <td width="110"><div align="center" class="style1"><strong>PENDIENTE</strong></div></td>
  58.   </tr>
  59.   <?
  60.   $amort=0;
  61.   $inter=0;
  62.   $cuota=0;
  63.   $acumu=0;
  64.   $pendi=$monto;
  65.   function roundo($valor)
  66.   {
  67.    $float_redondeado=round($valor * 100) / 100;
  68.    return $float_redondeado;
  69. }
  70.  
  71. for($x=0;$x<=$meses;$x++){
  72.   ?>
  73.   <tr>
  74.     <td width="33"> <span class="style2"><? echo $x;?></span></td>
  75.     <td width="110"><span class="style2"><? echo $amort;  ?></span></td>
  76.     <td width="110"><span class="style2"><? echo $inter;  $inter=$pendi*8/12/100;?></span></td>
  77.     <td width="110"><span class="style2"><? echo $cuota;  $cuota=$cuota_mes*1;?></span></td>
  78.     <td width="110"><span class="style2"><? echo $acumu;  ?></span></td>
  79.     <td width="110"><span class="style2"><? echo $pendi;  $amort=$cuota-$inter; $pendi=$pendi-$amort; $acumu=$acumu+$amort;?></span></td>
  80.   </tr>
  81.   <? } ?>
  82. </table>
  83.  
  84. </body>
  85. </html>
  86.  
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
Título: Re: como poner los datos de esta tabla en arrays?
Publicado por: gokufast en Viernes 27 de Marzo de 2009, 14:15
bueno seria algo asi, puede que no sea el mismo codigo pero la idea es esta.

Código: PHP
  1. $interes_tabla_1 = $interes_mes_1_tabla_1;
  2. $interes_array_1 = array();
  3. $amortizacion_tabla_1 = $amortizacion_mes_1_tabla_1;
  4. $amortizacion_array_1 = array();
  5. $cuota_tabla_1 = $cuota_mensual;
  6. $cuota_array_1 = array();
  7. $acumulada_tabla_1 = $amortizacion_tabla_1;
  8. $acumulada_array_1 = array();
  9. $pendiente_tabla_1 = $pendiente_mes_1_tabla_1;
  10. $pendiente_array_1 = array();
  11. for($y=1;$y<=$plazo_meses;$y++)
  12. {
  13.    $interes_array_1[] = $interes_tabla_1;
  14.    $interes_tabla_1=round(($pendiente_tabla_1*$interes_mensual),2);
  15.    $amortizacion_array_1[] = $amortizacion_tabla_1;
  16.    $amortizacion_tabla_1=round(($cuota_tabla_1-$interes_tabla_1),2);
  17.    $cuota_array_1[] = $cuota_tabla_1;
  18.    $cuota_tabla_1 = round(($interes_tabla_1 + $amortizacion_tabla_1),2);
  19.    $acumulada_array_1[] = $acumulada_tabla_1;
  20.    $acumulada_tabla_1= round(($acumulada_tabla_1+$amortizacion_tabla_1),2);
  21.    $pendiente_array_1[] = $pendiente_tabla_1;
  22.    $pendiente_tabla_1=round(($pendiente_tabla_1-$amortizacion_tabla_1),2);
  23. }
  24.  
Título: Re: como poner los datos de esta tabla en arrays?
Publicado por: Darkfirephoenix en Domingo 29 de Marzo de 2009, 01:21
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
  1.  
  2. <html>
  3. <head>
  4. <title>Array</title>
  5. <style type="text/css">
  6. <!--
  7. .style1 {font-size: 10px; font-weight: bold;}
  8. .style2 {font-size: 10px; font-weight: bold; vertical-align:center; }
  9. -->
  10. </style>
  11. </head>
  12. <body>
  13. <?
  14.   $monto = 11188;
  15.   $interes_mes_1 = 0.08/12;
  16.   $amortizacion_mes_1 = $cuota_mes - $interes_mes_1;
  17.   $acumulada_mes_1 = $amortizacion_mes_1;
  18.   $pendiente_mes_1 = $monto - $amortizacion_mes_1;
  19.   $meses = 18;
  20.   $cuota_mes = $monto/((1-(1/pow((1+$interes_mes_1),$meses)))/$interes_mes_1);
  21.   $pendi=$monto;
  22.   function roundo($valor)
  23.   {
  24.    $float_redondeado=round($valor * 100) / 100;
  25.    return $float_redondeado;
  26.   }
  27.  
  28. for($x=0;$x<=$meses;$x++){
  29.     //$Tabla_resultados almacena todos los valores, cada columna([0]-[5]) equivale a una columna de la tabla.
  30.     $tabla_resultados[0][$x]=$x;
  31.     $tabla_resultados[1][$x]=$amort;
  32.     $tabla_resultados[2][$x]=$inter; $inter=$pendi*8/12/100;
  33.     $tabla_resultados[3][$x]=$cuota; $cuota=$cuota_mes*1;
  34.     $tabla_resultados[4][$x]=$acumu;
  35.     $tabla_resultados[5][$x]=$pendi; $amort=$cuota-$inter; $pendi=$pendi-$amort; $acumu=$acumu+$amort;
  36. }?>
  37.  
  38. <table width="600" border="1" cellspacing="1" cellpadding="1">
  39.   <tr align="center" class="style1">
  40.     <td width="33"></td>
  41.     <td width="110">AMORTIZACION<td>
  42.     <td width="110">INTERES</td>
  43.     <td width="110">TOTAL</td>
  44.     <td colspan="2">AMORTIZACION</td>
  45.   </tr>
  46.   <tr align="center" class="style1">
  47.     <td width="33">nro</td>
  48.     <td width="110">MES</td>
  49.     <td width="110">MES</td>
  50.     <td width="110">MES</td>
  51.     <td width="110">ACUMULADA</td>
  52.     <td width="110">PENDIENTE</td>
  53.   </tr>
  54.  <?php
  55.  for($x=0;$x<=$meses;$x++)
  56.  //$x equivale al índice de las filas
  57.  {
  58.     echo("<tr class='style2'>");
  59.     for($y=0;$y<=(count($tabla_resultados)-1);$y++)
  60.     //$y es usado como indice de columnas([0]-[5] cuando se almacenaron los datos)
  61.     {
  62.     echo("<td>");
  63.     echo($tabla_resultados[$y][$x]);
  64.     echo("</td>");
  65.     }
  66.     echo("</tr>");
  67.  }?>
  68.  <table>
  69. </body>
  70. </html>
  71.  
  72.  

Lo hice de esa forma porque considero mas difícil sacar los datos de una tabla.

Saludos!
Título: Re: como poner los datos de esta tabla en arrays?
Publicado por: gokufast en Lunes 30 de Marzo de 2009, 16:15
super!!, gracias intentare de esa forma.