Mega Code Archive

 
Categories / Php / HTML
 

The Table and HTMLTable Classes

/* Code Revised from  Sam's Teach Yourself Php, Mysql and Apache in 24 Hours  (Sams Teach Yourself S.) (Paperback) by Julie C. Meloni  # Paperback: 616 pages # Publisher: Sams (1 Jan 2004) # Language English # ISBN: 0672326205 */ <html> <head> <title>testing objects</title> </head> <body> <?php class Table{     var $table_array = array();     var $headers = array();     var $cols;     function Table( $headers ){         $this->headers = $headers;         $this->cols = count ( $headers );     }     function addRow( $row ){         if ( count ($row) != $this->cols )             return false;         array_push($this->table_array, $row);         return true;     }     function addRowAssocArray( $row_assoc ) {         if ( count ($row_assoc) != $this->cols )             return false;         $row = array();         foreach ( $this->headers as $header ) {             if ( ! isset( $row_assoc[$header] ))                 $row_assoc[$header] = " ";             $row[] = $row_assoc[$header];         }         array_push($this->table_array, $row) ;     }     function output() {          print "<pre>";          foreach ( $this->headers as $header )              print "<B>$header</B>  ";          print "\n";          foreach ( $this->table_array as $y ) {              foreach ( $y as $xcell )                  print "$xcell  ";              print "\n";          }          print "</pre>";      } } class HTMLTable extends Table{      var $bgcolor;      var $cellpadding = "2";      function HTMLTable( $headers, $bg="#ffffff" ){          Table::Table($headers);          $this->bgcolor=$bg;      }      function setCellpadding( $padding ){          $this->cellpadding = $padding;      }      function output(){          print "<table cellpadding=\"$this->cellpadding\" border=1>";          foreach ( $this->headers as $header )              print "<td bgcolor=\"$this->bgcolor\"><b>$header</b></td>";          foreach ( $this->table_array as $row=>$cells ) {              print "<tr>";              foreach ( $cells as $cell )                  print "<td bgcolor=\"$this->bgcolor\">$cell</td>";              print "</tr>";          }          print "</table>";      } } $test = new HTMLTable( array("a","b","c"), "#00FF00"); $test->setCellpadding( 7 ); $test->addRow( array(1,2,3)); $test->addRow( array(4,5,6)); $test->addRowAssocArray( array ( b=>0, a=>6, c=>3 )); $test->output(); ?> </body> </html>