Ver Mensaje Individual
  #6 (permalink)  
Antiguo 16/07/2010, 12:20
Hidek1
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Tabla dinamica

prueba con esta class que hice

Código PHP:
Ver original
  1. <?php
  2. require_once 'Conexion.php';
  3. class DatabaseTable
  4. {
  5.     private $consulta;
  6.     private $matriz;
  7.     private $tabla;
  8.  
  9.     public function __construct($consulta)
  10.     {
  11.         if(is_string($consulta)) {
  12.             $this->consulta = $consulta;
  13.         }else {
  14.             Throw new Exception("El parametro debe ser una consulta SQL v&aacute;lida");
  15.         }
  16.         $this->verificarDatos();
  17.     }
  18.     private function verificarDatos()
  19.     {
  20.         $db = new Conexion();
  21.         $matriz = $db->query($this->consulta);
  22.         if(is_object($matriz)) {
  23.             $this->matriz = $matriz->fetchAll(PDO::FETCH_ASSOC);
  24.         }else {
  25.             Throw new Exception("La consulta presenta errores");
  26.         }
  27.     }
  28.     public function generateTable()
  29.     {
  30.         $contador = -1;
  31.         $enum = 1;
  32.         $this->tabla .= "<table>";
  33.         foreach($this->matriz as $fila => $celdas) {
  34.             $this->tabla .= $contador < 0 ? "<tr><td>#</td>" : "<tr><td>$enum</td>";
  35.             foreach($celdas as $columna => $celda) {
  36.                 if(++$contador < 1) {
  37.                     $ncols = array_keys($celdas);
  38.                     foreach($ncols as $ncol) $this->tabla .= "<th>$ncol</th>";
  39.                     $this->tabla .= "</tr><tr><td>$enum</td>";
  40.                 }
  41.                 $this->tabla .= "<td>$celda</td>";
  42.             }
  43.             $this->tabla .= "</tr>";
  44.             $enum++;
  45.         }
  46.         $this->tabla .= "</table>";
  47.         return $this->tabla;
  48.     }
  49. }

el uso..

Código PHP:
Ver original
  1. <?php
  2. try {
  3.     $tabla = new DatabaseTable("SELECT * FROM db_editor");
  4.     echo $tabla->generateTable();
  5. }catch(Exception $e) {
  6.     echo " - Warning (" . $e->getCode() . ") [" . pathinfo($e->getFile(), PATHINFO_BASENAME) . "::" . $e->getLine() . "] " . $e->getMessage() . "<br />\n";
  7. }
  8. ?>
__________________
More about me...
~ @rhyudek1
~ Github