Salve a tutti
ho un problema con l'update in un carrello della spesa. Dopo aver iniziato una sessione, in una pagina ho questo codice:


<?php
session_start();

//VEDO SE LA COMBINAZIONE GIà ESISTE
function esiste($designScelto,$alienScelto,$coloreScelto){
$carrello=$_SESSION['prodotti'];
$i=0;
$flag = false;
while ((count($carrello) > 0) && !$flag){
$temp=array_shift($carrello);
if ($temp['designScelto'] == $designScelto && $temp['alienScelto'] == $alienScelto && $temp['coloreScelto'] == $coloreScelto)
$flag = true;
$i++;
}
$flag=array('esiste'=>$flag,'pos'=>$i-1);
return $flag;
}


function Carrello($id_tshirt,$designScelto,$alienScelto,$co loreScelto,$quantity) {
if (array_key_exists('prodotti',$_SESSION))
{
$flag=esiste($designScelto,$alienScelto,$coloreSce lto);
if ($flag['esiste']){
$_SESSION['prodotti'][$flag['pos']]['quantity'] +=$quantity;

} else {
$temp=array('id_tshirt'=>$id_tshirt,'designScelto' =>$designScelto,'alienScelto'=>$alienScelto,'color eScelto'=>$coloreScelto,'quantity'=>$quantity);
array_push($_SESSION['prodotti'],$temp);
}
} else {
$_SESSION['prodotti'][0]=array('id_tshirt'=>$id_tshirt,'designScelto'=>$de signScelto,'alienScelto'=>$alienScelto,'coloreScel to'=>$coloreScelto,'quantity'=>$quantity);
}
}


array($_SESSION['prodotti']);
Carrello("$id_tshirt","$designScelto","$alienScelt o","$coloreScelto","$quantity");

foreach ($_SESSION["prodotti"] as $tshirt){
echo "ID: " ,$id_tshirt, "Design: ",$tshirt['designScelto'], " Alien: " ,$tshirt['alienScelto']," Color: " ,$tshirt['coloreScelto'], " Quantity: " ,$tshirt['quantity'], "</br>";
}


fin qui tutto ok, quando faccio gli inserimenti (le combinazioni di queste 3 var provengono dalla pagina precedente), mi stampa correttamente tutto nell'ultimo echo (ID, Design, Color...), anche quando faccio refresh, il valore della quantità aumenta correttamente...
Il problema però sorge quando vado a fare l'update della quantità nel database. Infatti, non so cosa mettere di preciso dopo il SET.
Ho fatto delle prove con echo, ma mi stampa sempre la quantità dell'ultimo articolo inserito.
Per esempio:
inserisco articolo con disegno 1, quantità 3
inserisco articolo con disegno 2, quantità 2

anche se scrivo:


if($_SESSION['designScelto']==$row['designScelto']) //per vedere se il disegno è già stato inserito nel database... in questo caso updato solo la quantità)

{
echo "tshirt già inserita $tshirt[quantity]";
$query="UPDATE products SET quantity = '$tshirt[quantity]' WHERE designScelto='$row[designScelto]}'";
$id_risult = mysql_query($query, $id_conness);

}

anche se il disegno è 1 (sia quello in sessione che quello dal database), mi restituisce sempre la quantità del secondo articolo (in questo caso 2).
---------------

Forse dipende dal while all'inizio?
come posso risolvere?
Grazie!