PHP Classes

File: ver0.2/sampledate.php

Recommend this page to a friend!
  Classes of Tom Schaefer   TypeSafeStruct   ver0.2/sampledate.php   Download  
File: ver0.2/sampledate.php
Role: Example script
Content type: text/plain
Description: Working with timestamps
Class: TypeSafeStruct
Manipulate type safe objects
Author: By
Last change: move
Date: 14 years ago
Size: 3,377 bytes
 

Contents

Class file image Download
<?php

ini_set
("max_execution_time",3);
$start = microtime(true);

include_once(
"TBit.class.php");
include_once(
"TEnum.class.php");
include_once(
"TLob.class.php");
include_once(
"TNumber.class.php");
include_once(
"TString.class.php");
include_once(
"TTimestamp.class.php");
include_once(
"TypedStruct.class.php");
include_once(
"TypeSafeStruct.class.php");

/**
 * CREATE TABLE `orders` (
  `orderNumber` int(11) NOT NULL,
  `orderDate` datetime NOT NULL,
  `requiredDate` datetime NOT NULL,
  `shippedDate` datetime DEFAULT NULL,
  `status` varchar(15) NOT NULL,
  `comments` text,
  `customerNumber` int(11) NOT NULL,
  PRIMARY KEY (`orderNumber`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `orders` VALUES ('10100', '2003-01-06 00:00:00', '2003-01-13 00:00:00', '2003-01-10 00:00:00', 'Shipped', null, '363');
INSERT INTO `orders` VALUES ('10101', '2003-01-09 00:00:00', '2003-01-18 00:00:00', '2003-01-11 00:00:00', 'Shipped', 'Check on availability.', '128');
INSERT INTO `orders` VALUES ('10102', '2003-01-10 00:00:00', '2003-01-18 00:00:00', '2003-01-14 00:00:00', 'Shipped', null, '181');
INSERT INTO `orders` VALUES ('10103', '2003-01-29 00:00:00', '2003-02-07 00:00:00', '2003-02-02 00:00:00', 'Shipped', null, '121');
INSERT INTO `orders` VALUES ('10104', '2003-01-31 00:00:00', '2003-02-09 00:00:00', '2003-02-01 00:00:00', 'Shipped', null, '141');
INSERT INTO `orders` VALUES ('10105', '2003-02-11 00:00:00', '2003-02-21 00:00:00', '2003-02-12 00:00:00', 'Shipped', null, '145');
INSERT INTO `orders` VALUES ('10106', '2003-02-17 00:00:00', '2003-02-24 00:00:00', '2003-02-21 00:00:00', 'Shipped', null, '278');
INSERT INTO `orders` VALUES ('10107', '2003-02-24 00:00:00', '2003-03-03 00:00:00', '2003-02-26 00:00:00', 'Shipped', 'Difficult to negotiate with customer. We need more marketing materials', '131');
INSERT INTO `orders` VALUES ('10108', '2003-03-03 00:00:00', '2003-03-12 00:00:00', '2003-03-08 00:00:00', 'Shipped', null, '385');

 */
class Model_Orders extends TypeSafeStruct {

    private
$int_OrderNumber;
    private
$datetime_OrderDate;
    private
$datetime_RequiredDate;
    private
$datetime_ShippedDate;
    private
$varchar_Status;
    private
$text_Comments;
    private
$int_CustomerNumber;

    public function
__set($key,$value) {
       
$this->hasProperty($key);
       
$type = $this->getPropertyType($key);
        if(
$type) {
           
$this->{$type."_".self::ucfirstAndCamelcased($key)} = $value;
        } else {
           
$this->{"set".$key}($value);
        }
    }

    public function
__get($key) {
        return
$this->{$key};
    }

}

// begin data operations
$link = mysql_connect('localhost', 'root', 'pwd');
if (!
$link) die('no connection established: ' . mysql_error());

$db = mysql_select_db('dbase', $link);
if (!
$db)die ('no able to use db: ' . mysql_error());

$result = mysql_query("SELECT * FROM orders LIMIT 4;");
if(!
$result) die("no result set: ". mysql_error());

// begin view operations
while($row=mysql_fetch_object($result, "Model_Orders")){
    echo
$row->getOrderNumber() . "|" . $row->getOrderDate()->daysInMonth().", ". $row->getOrderDate()->weekNumber().", ". $row->getOrderDate()->get()->format("d.m.Y") . "\n";
}

mysql_close($link);

$end = microtime(true);
echo
"\n".number_format($end - $start, 5);