Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/08/2011, 10:38
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Renderizado para construir tabla dinamica con adodb

Hice esta pequeña versión de prueba y me funciona correctamente:
Código PHP:
Ver original
  1. <?php
  2.  
  3. $aDatos = array(
  4.     array(
  5.         'id' => 1,
  6.         'marca' => 'vw',
  7.         'nombre' => 'jetta',
  8.         'color' => 'rojo',
  9.         'puertas' => '4',
  10.         'version' => 'GL',
  11.         'anio' => '2001'
  12.     ),
  13.     array(
  14.         'id' => 2,
  15.         'marca' => 'vw',
  16.         'nombre' => 'jetta',
  17.         'color' => 'azul',
  18.         'puertas' => '4',
  19.         'version' => 'GL',
  20.         'anio' => '2006'
  21.     ),
  22.     array(
  23.         'id' => 3,
  24.         'marca' => 'vw',
  25.         'nombre' => 'golf',
  26.         'color' => 'negro',
  27.         'puertas' => '2',
  28.         'version' => 'GL',
  29.         'anio' => '2002'
  30.     ),
  31.     array(
  32.         'id' => 4,
  33.         'marca' => 'vw',
  34.         'nombre' => 'beetle',
  35.         'color' => 'rojo',
  36.         'puertas' => '4',
  37.         'version' => 'GL',
  38.         'anio' => '2003'
  39.     )
  40. );
  41.  
  42. $aCampos = array(
  43.     'id' => '#',
  44.     'marca' => 'Marca',
  45.     'nombre' => 'Nombre',
  46.     'color' => 'Color',
  47.     'puertas' => 'Puertas',
  48.     'version' => 'Version',
  49.     'anio' => 'Año'
  50. );
  51.  
  52. $aRenders = array(
  53.     'id' => '<a href="test.php?id=%id%">%id%</a>',
  54.     'color' => '<span class="color_%color%">%color%</a>'
  55. );
  56.  
  57. echo Construye_Tabla($aDatos, $aCampos, $aRenders, "test", "Y");
  58.  
  59. function Construye_Tabla(array $datos,array $campos,array $renders,$estilo_tabla,$titulos)
  60. {
  61.     if ($estilo_tabla!="")
  62.     {
  63.         $tabla = "<table align='center' style='".$estilo_tabla."'>";
  64.     } else {
  65.         $tabla = "<table align='center' >";
  66.     }
  67.     if ($titulos=="Y")
  68.     {
  69.         $tabla .= "<tr>";
  70.         foreach ($campos as $campo => $titulo) {
  71.             $tabla .= "<th>$titulo</th>";
  72.         }
  73.     }
  74.     $tabla .= "</tr>";
  75.  
  76.     foreach($datos as $index => $row)
  77.     {
  78.         $tabla .= "<tr>";
  79.         foreach ($campos as $campo => $titulo) {
  80.             if (isset($row[$campo])) {
  81.                 if (isset($renders[$campo])) {
  82.                     $celda = str_replace('%'.$campo.'%', $row[$campo], $renders[$campo]);
  83.                 } else {
  84.                     $celda = $row[$campo];
  85.                 }
  86.                
  87.                 $tabla .= "<td>" . $celda . "</td>";
  88.             }
  89.         }
  90.         $tabla .= "</tr>";
  91.     }
  92.     $tabla .= "</table><br />";
  93.    
  94.    
  95.     return $tabla;
  96. }

Puedes compararla y ver las diferencias.

Saludos.