utilizzo un solo script che fa tutto:
è tutto commentato...
nella parte finale vorrei poter recuperare tramite l'ID inserito in array il TITOLO e il PREZZO del prodotto che sono in DB.
dunque quando mostro il carrello (parte finale del codice) non vorrei vedere:

2 Quantità 2
5 Quantità 6

ma

Titolo Quantità 2 Prezzo
Titolo Quantità 6 Prezzo

Codice PHP:
session_start();

//------------------------------------------------------------------------------
// SE LA SESSIONE NON ESISTE LA CREA
//------------------------------------------------------------------------------
if (!isset($_SESSION['jnb_total_products'])){

$_SESSION['jnb_total_products'] = 0;

}


//------------------------------------------------------------------------------
// IL LINK SUI PRODOTTI è DEL TIPO pagina.php?action=add&product=$id&quantitade=1 (per eliminare action=substract)
//------------------------------------------------------------------------------
switch (@$_GET['action']){

//-- adding
//--------------
case 'add':

if (isset(
$_SESSION['jnb_quantity'][$_GET['product']])){

// SE IL PRODOTTO è NEL CARRELLO AUMENTO LA QUANTITà DI 1
$_SESSION['jnb_quantity'][$_GET['product']] += $_GET['quantidade'];

}else{

// SE IL PRODOTTO NON ESISTE NEL CARRELLO
// LO AGGIUNGO

$_SESSION['jnb_quantity'][$_GET['product']] = $_GET['quantidade'];
$_SESSION['jnb_total_products']++;

// Sorting alphabeticaly the products
ksort ($_SESSION['jnb_quantity']);

}

break;

//-- subtracting
//--------------
case 'subtract':

if (
$_SESSION['jnb_quantity'][$_GET['product']] <= $_GET['quantidade']){

// SE ACT=SUBSTRACT RIMUOVO IL PRODOTTO SE LA QUANTITà è = 1

unset($_SESSION['jnb_quantity'][$_GET['product']]);
$_SESSION['jnb_total_products']--;

}else{

// SE è MAGGIORE DI 1 SOTTRAGGO UNA UNITà

$_SESSION['jnb_quantity'][$_GET['product']] -= $_GET['quantidade'];

}

break;

}

//------------------------------------------------------------------------------
//-- SE CI SONO PRODOTTI STAMPO LA LISTA
//------------------------------------------------------------------------------

if ($_SESSION['jnb_total_products'] > 0){

echo 
'BASKET LIST

'
;

// Because the product name is the index key, we will list the jnb_quantity variable keys
$array_products array_keys($_SESSION['jnb_quantity']);

foreach (
$array_products as $product){

echo 
'[url="buy.php?action=subtract&product=' $product '&quantidade=1"]' $product '[/url] qtd: ' $_SESSION['jnb_quantity'][$product] . '
'
;

}

echo 
'

'
;

}

//------------------------------------------------------------------------------
//-- IL MODELLO DI LINK
//------------------------------------------------------------------------------

echo 'AVAILABLE PRODUCTS

'
;

echo 
'[url="buy.php?action=add&product=$id&quantidade=1"]$titolo[/url]
'
;
echo 
'[url="buy.php?action=add&product=$id&quantidade=1"]$titolo[/url]
'
;
echo 
'[url="buy.php?action=add&product=$id&quantidade=1"]$titolo[/url]
'
;

?>