Login   Register  
PHP Classes
elePHPant
Icontem

File: ver0.2/sampledate.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  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: 2009-04-13 07:12
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 $start5);