Version: 0.1
Type: Class
Category: Shopping Carts
License: GNU General Public License
Description: Just a simple cart, does work with mysql. It's just a start, it may help someone :)
<?
/*
# (Current) Functions List
- addItem ( itemID, count ) = add an item
- removeItem ( itemID ) = remove an item
- getPrice ( ) = get's the total price of the items
- saveItems ( ) = save the items to a session
- clearItems ( ) = clear the session and the array with items
#
# Disclaimer :P
- Copyright (C)
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation; either version 2
of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
http://www.opensource.org/licenses/gpl-license.html
- Questions? woutervangroesen@wanadoo.nl
#
# MySQL Table
CREATE TABLE products (
ID int(4) unsigned NOT NULL auto_increment,
name varchar(255) default '0',
price varchar(8) default '0',
PRIMARY KEY (ID)
) TYPE=MyISAM;
#
*/
error_reporting(E_ALL);
class Cart {
var $buy;
var $count;
function Cart ()
{
// Set $this->buy to be an array
$this->buy = array();
}
function __error( $ERR )
{
// Dirty just make your own
die ( $ERR );
}
function addItem ( $ID, $COUNT )
{
// If the ID wasn't set or wasn't numeric
// Or if the COUNT wasn't set or wasn't numeric
if( Empty ( $ID ) OR !is_numeric ( $ID ) OR Empty ( $COUNT ) OR !is_numeric ( $COUNT ) )
$this->__error ( "There wasn't an ID or the ID wasn't numeric." );
// else
for( $i = 0; $i < $COUNT; $i++ )
$this->buy[$ID] = $COUNT;
// count all the items
$this->count = count($this->buy);
}
function removeItem ( $ID )
{
// If the ID wasn't set or wasn't numeric
if( Empty ( $ID ) OR !is_numeric ( $ID ))
$this->__error ( "There wasn't an ID or the ID wasn't numeric." );
// else
unset( $this->buy[$ID] );
}
function getPrice()
{
$price = 0;
foreach ( $this->buy AS $ID => $COUNT )
{
// Select the price of the product
$query = mysql_fetch_array(mysql_query("SELECT price FROM products WHERE ID = '" . $ID . "' "));
// Get the price of the product and put it to an variable
$price = $price + ($COUNT * $query["price"]);
}
return $price;
}
function saveItems ()
{
// if there are items,
// serialize the data en save it in a session
if ( IsSet ( $this->count ) )
$_SESSION['items'] = serialize($this->buy);
}
function clearItems ()
{
// Delete the array "buy"
unset($this->buy);
// unset the session
unset($_SESSION['items']);
}
}
?>