// Install.php
[code]
<?php
include('Config.php');

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
	$produ = mysql_query("CREATE TABLE `producten` (
						`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
						`voorraad` INT NOT NULL ,
						`titel` VARCHAR( 50 ) NOT NULL ,
						`afbeelding` VARCHAR( 25 ) NOT NULL ,
						`omschrijving` TEXT NOT NULL,
						`prijs` VARCHAR( 15 ) NOT NULL
						) ENGINE = MYISAM ;");

	$bestl = mysql_query("CREATE TABLE `bestelling` (
						`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
						`klant_id` INT NOT NULL ,
						`datum` DATETIME NOT NULL
						) ENGINE = MYISAM ;");

	$bestr = mysql_query("CREATE TABLE `bestelregel` (
						`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
						`bestel_id` INT NOT NULL ,
						`product_id` INT NOT NULL ,
						`aantal` INT NOT NULL
						) ENGINE = MYISAM ;");
						
	if(!$produ && !$bestl && !$bestr)
	{
		echo 'Fout bij installeren query´s: <br />';
		echo mysql_error();
		
		exit();
	}
	else
	{
		echo 'Alles succesvol geïnstalleerd';
	}
}
else
{
	echo '<form action="" method="post">';
		echo '<input type="submit" value="Installer de DataBase" />';
	echo '</form>';
}
?>
[/code]

// index.php
[code]

<?php
// Database connectie maken
include('Config.php');

// Style pagina invoegen
echo '<link rel="stylesheet" type="text/css" href="CSS/Winkelwagen.css" />';

// Alle items uit de db halen
$sql = mysql_query("SELECT * FROM producten ORDER BY titel ASC");

// Als query is gelukt
if($sql)
{
	// Als er items zijn
	if(mysql_num_rows($sql) > 0)
	{
		echo '<div class="wrapper">';
			// Alles loopen
			while($rec = mysql_fetch_assoc($sql))
			{
				echo '<div class="artikel_e">';
					// Product id
					echo '<input type="hidden" name="product_id" value="'.$rec['id'].'" />';
					
					// De titel
					echo '<b>'.$rec['titel'].'</b><br />';
					
					// De afbeelding
					echo '<img alt="" src="CSS/IMAGES/PRODUCTEN/'.$rec['afbeelding'].'" /><br />';
					
					// Prijs
					echo 'Prijs: &euro;'.$rec['prijs'].'<br />';
					
					echo '<a href="Product.php?Pid='.$rec['id'].'">Meer details</a>';
				echo '</div>';
			}
		echo '</div>';
	}
	// Anders
	else
	{
		// Geen producten
		echo 'Er zijn nog geen producten in de etalage.';
	}
}
// Anders
else
{
	// Mysql error opvangen
	echo 'Er is een fout opgetreden bij de query. <br />';
	echo mysql_error();
}
?>
[/code]

// Config.php
[code]
<?php
// Mysql host
$host = '';
// Mysql gebruikersnaam
$user = '';
// Mysql wachtwoord
$pass = '';
// Mysql database naam
$datb = '';

mysql_connect($host, $user, $pass) or die (mysql_error());
mysql_select_db($datb);
?>
[/code]


// Product.php
[code]
<?php
// Database connectie maken
include('Config.php');

// Style pagina invoegen
echo '<link rel="stylesheet" type="text/css" href="CSS/Winkelwagen.css" />';

// Alle items uit de db halen
$sql = mysql_query("SELECT * FROM producten WHERE id = '".intval($_GET['Pid'])."'");

// Als query is gelukt
if($sql)
{
	// Als er items zijn
	if(mysql_num_rows($sql) > 0)
	{
		echo '<div class="wrapper">';
			// Alles loopen
			$rec = mysql_fetch_assoc($sql);
			
			echo '<div class="artikel_p">';
				echo '<form action="Add.php" method="post">';
					// Product id
					echo '<input type="hidden" name="product_id" value="'.$rec['id'].'" />';
					
					// De afbeelding
					echo '<img alt="" src="CSS/IMAGES/PRODUCTEN/'.$rec['afbeelding'].'" />';
					
					// Informatie rechterzijde
					echo '<div class="info">';
						// De titel
						echo '<b>'.$rec['titel'].'</b><br />';
						
						// Prijs
						echo '<b>Prijs:</b> &euro;'.$rec['prijs'].'<br />';
						
						// Aantal
						echo '<b>Aantal:</b> <input class="aantal_p" type="text" name="aantal" size="2" maxlength="2" value="1" /><br />';
						
						// Omschrijving
						echo '<b>Omschrijving:</b><br />';
						echo nl2br($rec['omschrijving']);
					echo '</div>';
					
					// Add knop
					echo '<input class="submit_p" type="submit" value="Toevoegen" />';
				echo '</form>';
			echo '</div>';
		echo '</div>';
	}
	// Anders
	else
	{
		// Geen producten
		echo '<p class="error">Er zijn nog geen producten in de etalage.</p>';
	}
}
// Anders
else
{
	// Mysql error opvangen
	echo 'Er is een fout opgetreden bij de query. <br />';
	echo mysql_error();
}
?>
[/code]


// Add.php
[code]
<?php
// Sessie starten
session_start();

// Kijken of product_id geset is en een nummer is
if(!isset($_POST['product_id']) || !is_numeric($_POST['product_id']))
{
	exit('Er is geen product id meegezonden');
}
else
{
	$product_id = $_POST['product_id'];
}
// Kijken of aantal geset is en een nummer is
if(!isset($_POST['aantal']) || !is_numeric($_POST['aantal']))
{
	exit('Er is geen product id meegezonden');
}
else
{
	$aantal = $_POST['aantal'];
}



// Als er niks in de winkelwagen staat
if(empty($_SESSION['winkelwagen']))
{
	// Nieuwe aanmaken
	$_SESSION['winkelwagen'] = $product_id.','.$aantal;
}
// Anders
else
{
	// Winkelwagen opsplitsen op de pipe
	$cart = explode('|', $_SESSION['winkelwagen']);

	// Winkelwagen inhoud tellen
	$count = count($cart);

	// Var om te check voor het toevoegen
	$add = TRUE;
	foreach($cart as $products)
	{
		// Exploden
		/*
			$product[x] -->
			x == 0 -> productnummer
			x == 1 -> hoeveelheid
		*/
		
		$product = explode(',', $products);
		// Als product al in de winkelwagen is
		if($product[0] == $product_id)
		{
			$product[1] = $product[1] + $aantal;
			$add = FALSE;  // Dus niet toevoegen
		}
	
		// En weer in de sessie zetten
		$i++;
		if($i == 1)
		{
			// In de sessie gooien
			$_SESSION['winkelwagen'] = $product[0].','.$product[1];
		}
		// Anders
		else
		{
			// Bij de oude sessie plaatsen
			$_SESSION['winkelwagen'] = $_SESSION['winkelwagen'].'|'.$product[0].','.$product[1];
		}
	}

	// Als er toegevoegd meot worden
	if($add)
	{
    	$_SESSION['winkelwagen'] = $_SESSION['winkelwagen'].'|'.$product_id.','.$aantal;
	}
}

// Doorsturen
header('Location: Winkelwagen.php');
?>
[/code]


// Winkelwagen.php
[code]
<?php
// Sessie starten
session_start();

// Database connectie maken
include('Config.php');

// Style pagina invoegen
echo '<link rel="stylesheet" type="text/css" href="CSS/Winkelwagen.css" />';

// Javascript voor updaten en deleten winkelwagen invoegen
echo '<script type="text/javascript" src="Winkelwagen.js"></script>';

// Kijk of er iets in de winkelwagen zit
if(empty($_SESSION['winkelwagen']))
{
	echo '<p class="error">Uw winkelwagen is momenteel leeg.</p>';
}
// Anders
else
{
	echo '<div class="wrapper">';
		echo '<div class="row">';
			echo '<p class="small"><b>Aantal:</b></p>';
			echo '<p class="small"><b>Art. nr.:</b></p>';
			echo '<p class="big"><b>Product:</b></p>';
			echo '<p class="small"><b>Actie:</b></p>';
			echo '<p class="small"><b>Prijs:</b></p>';
		echo '</div>';
	
		// Exploden
		$cart = explode('|', $_SESSION['winkelwagen']);

		// Begin formulier
		echo '<form action="Upd_winkelwagen.php" method="post">'; 
			// Show winkelwagen
			$i = 0;
			foreach($cart as $products)
			{
				// Split
				/*
				$product[x] -->
					x == 0 -> product id
					x == 1 -> hoeveelheid
				*/
				$product = explode(',', $products);
		
				// Get product info
				$sql = mysql_query("SELECT * FROM producten WHERE id = '".intval($product[0])."'");
			  
				// Als query gelukt is
				if($sql)
				{
					// Als er items zijn
					if(mysql_num_rows($sql) > 0)
					{
						// Alle items echoën
						$rec = mysql_fetch_assoc($sql);
						$i++;
		
						// Verborgen vars
						echo '<input type="hidden" name="productnummer_'.$i.'" value="'.$product[0].'" />';
						
						echo '<div class="row">';
							// Aantal
							echo '<p class="small">';
								echo '<input type="text" class="aantal_w" name="hoeveelheid_'.$i.'" value="'.$product[1].'" size="2" maxlength="2" onKeyPress="return submitenter(this,event)" />';
							echo '</p>';
							
							// Artikel nummer
							echo '<p class="small">';
								if($rec['voorraad'] < $product[1])
								{
									echo '<font style="color: #FF0000;">'.$product[0].'</font>';
									$error = TRUE;
								}
								else
								{
									echo $product[0];
								}
							echo '</p>';
							
							// titel
							echo '<p class="big">';
								echo $rec['titel'];
							echo '</p>';
							
							// Acties
							echo '<p class="small">';
								echo '<a href="javascript:removeItem('.$i.')">Del</a>';
							echo '</p>';
							
							// Prijs
							echo '<p class="small">';
								echo '&euro; '.($rec['prijs'] * $product[1]);
							echo '</p>';
						echo '</div>';
					}
					// Anders
					else
					{
						// Fout weergeven
						echo '<p class="error">Dit product is er niet meer.</p>';
					}
				}
				// Anders
				else
				{
					// Mysql error opvangen
					echo 'Er is een fout opgetreden in de query. <br />';
					echo mysql_error();
				}
			}
		echo '</form>';
		
		if($error == TRUE)
		{
			echo '<p class="error">';
				echo 'Van artikelen waarvan het artikelnummer rood is gekleurd hebben we niet voldoende op voorraad om je bestelling direct uit te kunnen leveren.';
			echo '</p>';
		}
	echo '</div>';
	
	// Winkelwagen leeghalen & Afrekenen
	echo '<a href="javascript:removeCart()">Winkelwagen leeghalen</a><br />';
	echo '<a href="Afrekenen.php">Afrekenen</a></p>';
}
?>
[/code]


// Afrekenen.php
[code]
<?php
// Sessie starten
session_start();

// Database connectie maken
include('Config.php');

$_SESSION['user_id'] = '1';

// Order invoegen 
$sql1 = mysql_query("INSERT INTO
						bestelling
							(
							klant_id,
							datum
							)
					VALUES
						(
						'".intval($_SESSION['user_id'])."',
						NOW()
						)
					");

// Als query gelukt is
if($sql1)
{
	// Winkelwagen openen
	$cart = explode('|', $_SESSION['winkelwagen']);
	
	// $bestel id aanmaken
	$bestel_id = mysql_insert_id();
	
	// Voor elk product
	$i = 1;
	foreach($cart as $products)
	{
		// Split
		/*
			$product[x] -->
				x == 0 -> product id
				x == 1 -> hoeveelheid
		*/
		// Product eigenschappen splitsen
		$product = explode(',', $products);
		
		// Bestelde producten in db zetten
		$sql2 = mysql_query("INSERT INTO
								bestelregel
									(
									bestel_id,
									product_id,
									aantal
									)
							VALUES
								(
								'".intval($bestel_id)."',
								'".$product[0]."',
								'".$product[1]."'
								)
							");
		// Als de query gelukt is
		if($sql2)
		{
			if($i == 1)
			{
				echo 'Uw bestelling is geplaatst.';
			}
		}
		// Anders
		else
		{
			// Mysql error opvangen
			echo 'Er is een fout opgetreden in query nr: 2 <br />';
			echo mysql_error();
		}
	$i++;
	}
}
// Anders
else
{
	// Mysql error opvangen
	echo 'Er is een fout opgetreden in query nr: 1 <br />';
	echo mysql_error();
}
?>
[/code]


// Del_all.php
[code]
<?php
// delete_cart.php
session_start();

// Als er iets in de winkelwagen zit
if(empty($_SESSION['winkelwagen']))
{
	// Terug sturen
	header('Location: Winkelwagen.php');
}
// Anders
else
{
	// Leeg de winkwelwagen
	session_unset($_SESSION['winkelwagen']);

	// Terug sturen
	header('Location: Winkelwagen.php');
}
?>
[/code]


// Del_item.php
[code]
<?php
// Sessie starten
session_start();

// Als item nummeriek is
if(is_numeric($_GET['item']))
{
	$item = $_GET['item'];
}
// Anders
else
{
	// Error weergeven
	exit ('U wilt een item verwijderen dat niet bestaad.');
}


// Kijk of er iets in de winkelwagen zit
if(empty($_SESSION['winkelwagen']))
{
	echo 'Uw winkelwagen is momenteel leeg.';
}
// Anders
else
{
	// Winkelwagen uit elkaar plukken
	$cart = explode('|', $_SESSION['winkelwagen']);

	// Kijken of het in de winkelwagen staat
	foreach($cart as $products)
	{
		// Split
		/*
		  $product[x] -->
			 x == 0 -> productnummer
			 x == 1 -> hoeveelheid
		*/
		$product = explode(',', $products);
		$i++;
		
		// Als item niet toegevoegd moet worden.
		if($i != $item)
		{
			// Var toevoegen aan nieuwe winkelwagen
			$inNewCart = $product[0].','.$product[1];
			$newCart = $newCart.'|'.$inNewCart;
		}
	}
  
	// Luiheid, blijheid... er staat nog een | vooraan, even weghalen.
	$newCart = substr($newCart, 1);
}

// Verwijder winkelwagen
session_unset($_SESSION['winkelwagen']);

// Maak nieuwe winkelwagen
$_SESSION['winkelwagen'] = $newCart;

// En terugsturen
header('Location: winkelwagen.php');
?> 
[/code]


// Upd_winkelwagen.php
[code]
<?php
// update_cart.php
session_start();

// Kijk of er iets in de winkelwagen zit
if(empty($_SESSION['winkelwagen']))
{
	echo 'Uw winkelwagen is momenteel leeg.';
}
// Anders
else
{
	// Exploden
	$cart = explode('|', $_SESSION['winkelwagen']);

	// Tellen
	$count = count($cart);

	// Alle producten langslopen
	foreach($cart as $products)
	{
		// Split
		/*
		  $product[x] -->
			 x == 0 -> product id
			 x == 1 -> hoeveelheid
		*/
		$product = explode(',', $products);
		$i++;

		$postedProduct = 'productnummer_'.$i;     // Deze twee om later de geposte waarde te 'spoofen'
		$postedQuantity = 'hoeveelheid_'.$i;

		// Post waarden spoofen
		if($product[0] == $_POST[$postedProduct] && $_POST[$postedQuantity] > 0)
		{
			// Update pro
			$inNewCart = $product[0].','.$_POST[$postedQuantity];
			$newCart = $newCart.'|'.$inNewCart;
		}
	}
  
  // En weer die luiheid, dus die eerste | eraf...
  $newCart = substr($newCart, 1);

  // Oude winkelwagen weg, nieuwe terug
  session_unset($_SESSION['winkelwagen']);
  $_SESSION['winkelwagen'] = $newCart;

  // En weer terugsturen
  header('Location: Winkelwagen.php');
}
?>
[/code]


// Winkelwagen.js
[code]
// JavaScript Document
<!--
// Delete item
function removeItem(item)
{
	var answer = confirm ('Weet u zeker dat u dit product wilt verwijderen?')
	if (answer)
		window.location='Del_item.php?item=' + item;
}

// Delete all products
function removeCart()
{
	var answer = confirm ('Weet u zeker dat u de winkelwagen wilt leeghalen?')
	if (answer)
		window.location='Del_all.php';
}

// Submit form bij enter
// BRON: (http://www.htmlcodetutorial.com/forms/index_famsupp_157.html)
function submitenter(myfield,e)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13)
	{
		myfield.form.submit();
		return false;
	}
	else
		return true;
}
//-->
[/code]


// Winkelwagen.css
[code]
/* Standaard */
body {
	font-family: Verdana;
	font-size: 11px;
	color: #808080;
}
div.wrapper {
	width: 500px;
	min-height: 5px;
	padding-bottom: 5px;
	overflow: hidden;
}
a {
	color: #808080;
	text-decoration: none;
}
a:hover {
	color: #808080;
	text-decoration: underline;
}
p.error {
	width: 500px;
	
	text-align: center;
	line-height: 15px;
	
	margin: 0px;
	padding: 0px;
	display: block;
	float: left;
	
	background-color: #EEDDDD;
}
/* Formulier elementen */


/* Etalage */
div.artikel_e {
	width: 130px;
	height: 180px;
	
	float: left;
	margin-left: 1px;
	padding-left: 10px;
	padding-right: 10px;
	
	border: 1px solid #808080;
	background-color: #F2F2F2;
}
img {
	width: 130px;
	height: 130px;
	
	margin: 0px;
	padding: 0px;
	display: block;
	float: left;
	
	border: 1px solid #808080;
}

/* Etalage */
div.artikel_p {
	width: 400px;
	height: 157px;
	
	float: left;
	margin-left: 1px;
	padding: 10px;
	
	border: 1px solid #808080;
	background-color: #F2F2F2;
}
div.info {
	width: 250px;
	height: 130px;
	
	margin: 0px;
	padding: 0px;
	float: right;
	
	border: 1px solid #808080;
}
input.aantal_p {
	width: 40px;
	height: 20px;
	
	border: none;
	background-color: transparent;
}
input.submit_p {
	width: 400px;
	height: 20px;
	
	margin-top: 1px;
	
	border: 1px solid #808080;
	background-color: #D8D8D8;
}

/* Winkelwagen */
div.row {
	width: 500px;
	height: 20px;
	
	float: left;
	line-height: 20px;
	
	border-bottom: 1px solid #D8D8D8;
}
p.small {
	width: 75px;
	height: 20px;
	
	float: left;
	margin: 0px;
	padding: 0px;
	display: block;
}
p.big {
	width: 200px;
	height: 20px;
	
	float: left;
	margin: 0px;
	padding: 0px;
	display: block;
}
input.aantal_w {
	width: 40px;
	height: 20px;
	
	border: none;
	background-color: transparent;
}
[/code]