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>
Related examples in the same category