Clase para crear tablas en PHP

      • 432
      • mensajes
      • miembro desde
      • 04/02/02
    #1 Clase para crear tablas en PHP

    Bueno aca les dejo una clasesita en PHP para crear tablas. Me parecio bastante copada la idea, y que a alguien le podía servir.

    Esta es la primera versión, la próxima viene con styles. También tenía pensado hacer algo con base de datos pero todavia lo tengo que terminar de armar en mi cabecita.

    Si tienen dudas, o alguna mejora o les sirvio para algo avisen.

    Aca les dejo la clase, y mas abajo un ejemplo:

    Código PHP:
    <?php
    class Tabla{

    /*Declaracion de Variables de la clase*/
        
    var $cant_filas;
        var 
    $cant_columnas;
        var 
    $tabla;
        var 
    $tabla_html;
        var 
    $class;
        var 
    $id;
        var 
    $error;

        var 
    $INICIO_DE_TABLA,$FIN_DE_TABLA,$INICIO_DE_FILA,$FIN_DE_FILA,$INICIO_DE_COLUMNA,$FIN_DE_COLUMNA;

    /* function Tabla(), Constructor de la clase*/
        
    function Tabla($cant_filas,$cant_columnas,$class,$id){

            
    $this->INICIO_DE_TABLA "<TABLE id=$id class=$class border=1>\n";
            
    $this->FIN_DE_TABLA "</table>\n";
            
    $this->INICIO_DE_FILA "<TR>\n";
            
    $this->FIN_DE_FILA "<TR>\n";
            
    $this->INICIO_DE_COLUMNA "<TD>\n";
            
    $this->FIN_DE_COLUMNA "</TD>\n";

            If(!isset(
    $cant_filas)){
                
    $this->error "Error  no se informa la cantidad de filas";
                RETURN 
    FALSE;
            }
            If(!isset(
    $cant_columnas)){
                
    $this->error "Error  no se informa la cantidad de columnas";
                RETURN 
    FALSE;
            }

            
    $this->cant_filas=$cant_filas;
            
    $this->cant_columnas=$cant_columnas;
            
    $this->class=$class;
            
    $this->id=$id;

            RETURN 
    TRUE;
        }

    /*Completa la clase tabla con datos*/
        
    function llenar_tabla($datos){
            If(!
    is_array($datos)){
                
    $this->error "El parametro no es un array()";
                RETURN 
    FALSE;
            }
            If(!isset(
    $datos)){
                
    $this->error="El array no tiene datos";
                RETURN 
    FALSE;
            }

            
    $this->tabla=$datos;
            RETURN 
    TRUE;
        }

        function 
    armar_tabla(){
            
    $this->tabla_html $this->INICIO_DE_TABLA;

            foreach(
    $this->tabla as $tabla_fila){/*Aca tengo $tabla_fila, que es una fila entera de la tabla*/
                
    $this->tabla_html $this->tabla_html $this->INICIO_DE_FILA;

                foreach(
    $tabla_fila as $dato_columna){/*Aca tengo $tabla_columna que es cada columna de la fial $tabla_fila*/
                    
    $this->tabla_html $this->tabla_html $this->INICIO_DE_COLUMNA;
                    
    $this->tabla_html $this->tabla_html $dato_columna;/*Pongo el texto para esa fila/columna*/
                    
    $this->tabla_html $this->tabla_html $this->FIN_DE_COLUMNA;
                }
                
    $this->tabla_html $this->tabla_html $this->FIN_DE_FILA;
            }
            
    $this->tabla_html $this->tabla_html .$this->FIN_DE_TABLA;

            RETURN 
    TRUE;
        }
        
        function 
    get_tabla(){
            IF(!isset(
    $this->tabla_html)){
                
    $this->error "La tabla en html no tiene datos, primero tiene que llamar a armar_tabla()";
                RETURN 
    FALSE;
            }
            RETURN 
    $this->tabla_html;
        }
        
        function 
    get_error(){
            RETURN 
    $this->error;
        }
    }

    ?>
    Aca el ejemplo de uso:
    Código PHP:
    <?php

    /*Test tabla HTML*/
    include("class.tabla_sin_style.php");

    /*Creo la instancia de la Tabla 2*/
    $bool $tabla2 = new Tabla(1,2,"T2","Tabla_de_prueba2");
    if(
    $bool FALSE){
        die(
    $tabla2->get_error());
    }
    /*Lleno la tabla con un array con los datos que quera*/
    $bool $tabla2->llenar_tabla(array(
                    
    => array(=> "Tabla 2 Columna 1",2=>"Tabla 2 Columna 2"),
                    ));
    //$bool = $tabla2->llenar_tabla("A");
    if($bool FALSE){
        die(
    $tabla2->get_error());
    }
    /*Llamo a la funcion que arma la tabla y deja un html*/
    $bool=$tabla2->armar_tabla();
    if(
    $bool FALSE){
        die(
    $tabla2->get_error());
    }
    /*Busco el HTML*/
    $text_tabla2 $tabla2->get_tabla();

    /*Tabla principal*/
    $bool $tabla = new Tabla(2,2,"T1","Tabla_de_prueba");
    if(
    $bool FALSE){
        die(
    $tabla->get_error());
    }

    $bool $tabla->llenar_tabla(array(
                    
    => array(=> $text_tabla2,2=>"Hola yo soy la 1.2"),
                    
    => array(=> "Que tal, yo soy la 2.1",=> "Y yo la ultima, la 2.2")
                    ));
    if(
    $bool FALSE){
        die(
    $tabla->get_error());
    }

    $bool=$tabla->armar_tabla();
    if(
    $bool FALSE){
        die(
    $tabla->get_error());
    }

    echo 
    $tabla->get_tabla();

    ?>
    saludos a todos.
  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    7 comentarios / 278898 Visitas

      • 21
      • mensajes
      • miembro desde
      • 25/10/01
    20/03/2002
    #2

    Gracias.
    Voy a probrarla.

      • 63
      • mensajes
      • miembro desde
      • 30/09/01
    27/03/2002
    #3 tnx

    a ver q onda..

      • 9
      • mensajes
      • miembro desde
      • 12/03/01
    25/04/2002
    #4

    buena idea, buena iniciativa, exceletne aunke no entendi mucho pero ahora me voy aplicando...

    grax man.

      • 1
      • mensajes
      • miembro desde
      • 15/06/07
    15/06/2007
    #5 Alguien me puede dar una mano?

    Es más sencillo que las clases que vos escribiste
    Tengo que hacer que se imprima en pantalla un mapa de colores en formato de tabla html, el procedimiento recibe 3 parámetros: una matriz indexada, por fila y columna conteniendo colores en notacion html en strings; un numero de filas y un número de columnas.
    Para esto tengo que usar estructuras iterativas for, while o foreach.
    He probado con algunas cosas pero no me queda, tengan en cuenta que arranque hace poco a programar en php.
    Gracias!!

      • 13
      • mensajes
      • miembro desde
      • 16/09/07
    09/05/2008
    #6 Re: Clase para crear tablas en PHP

    muchas gracias por la información
    saludos

      • 875
      • mensajes
      • miembro desde
      • 15/05/05
    • &lt;?echo &quot;developer&quot;?&gt;
    09/05/2008
    #7 Re: Clase para crear tablas en PHP

    No tiene utilidad para webs que pretenden tener muchas visitas.
    Generar HTML onDemand en principio no tiene mucho sentido, segundo es gasto de procesador, tercero no se almacena, cuarto dos foreach anidados en PHP = MUCHA memoria para el PHP mas si se ejecuta como CGI. No sabes mucho el manejo de objetos por lo visto... conclusion = MALO

    Recuerdo que para utilizarlo se debe hacer con PHP5
    Saludos.-

      • 1
      • mensajes
      • miembro desde
      • 07/02/11
    07/02/2011
    #8 Re: Clase para crear tablas en PHP

    Hola, me sirvio muchisimo este post, pero quisiera saber porque se me duplican las columnas de datos, se me ponen dos veces cada uno. Tiene solucion? Ya intente de todo...
    gracias!

IR ARRIBA