salve, tramite un cookie gestisco un carrello degli acquisti.
la variabile cookie, in questo caso � un array JSON, che per gestirlo tramite lo converto in un array multidimensionale, nella seguente forma:
codice:
$prodottiPHPnew[]= ['IDprodotto' => $IDprod, 'quantita' => $qta];
supponiamo che nel mio carrello ci sono degli altri articoli, quando sto per aggiungere un nuovo articolo, se questo risulta gia' presente nel carrello, voglio che si sommino soltanto le quantita'. In caso negativo invece, questo prodotto si deve aggiungere agli altri.
ho provato a fare in questo modo:
codice:
    $IDprod= $_POST['IDprodotto'];
    $qta= $_POST['quantita'];
    $IDNonPresente= false;
    if(isset($_COOKIE['acquisto'])) //se sono gi� presenti articoli nel carrello
    {
        $prodottiPHPnew = json_decode($_COOKIE['acquisto'], true); //vado a prelevare l'array del carrello
        //l'array � cos� strutturato: $prodottiPHPnew[]= ['IDprodotto' => $IDprod, 'quantita' => $qta];
        for ($row = 0; $row <count($prodottiPHPnew); $row++)
        {
            if ($IDprod == $prodottiPHPnew[$row]["IDprodotto"]) //se � gi� presente un prodotto nel carrello con lo stesso codice..
                $prodottiPHPnew[$row]["quantita"]+=$qta; //...vado solo a sommare le quantit�


            else {
                $IDNonPresente= true; //altrimenti mi segno che quel prodotto non � gi� presente nell'array � forzo l'uscita dal ciclo con break
                break;
            }
        }
        
        if($IDNonPresente) //se il prodotto non � gi� presente nell'array, lo vado ad accodare e ripongo $IDNonPresente= false;
        {
            $prodottiPHPnew[] = ['IDprodotto' => $IDprod, 'quantita' => $qta];
            $IDNonPresente= false;
        }
        
        echo'array aggiornato<br>';
        print_r($prodottiPHPnew);


        // aggiorno l'array JSON
        $prodottiJS = json_encode($prodottiPHPnew); //vado ad convertire l'array in un array json 
        echo'<br><br>JSON aggiornato<br>';
        echo $prodottiJS; 
        setcookie("acquisto", $prodottiJS, time()+360000); //qui vado ad aggionare il cookie del carrello con il nuovo array 
        header("location: infoprodotto_new.php");
    }
Non funziona correttamente, infatti se ho un solo prodotto nel carrello e vado ad aggiungere sempre lo stesso prodotto, si sommano soltanto le quantit� (FINO A QUA TUTTO OK), quando aggiungo un altro prodotto (non presente) si aggiunge al carrello (ANCORA TUTTO OK), quando invece tento di aggiungere di nuovo lo stesso prodotto questo oltre a sommare le quantit� me ne accoda un altro nell'array.
Mi spiego meglio, supponiamo che nel carrello ho i seguenti prodotti:
CODPRODOTTO, QUANTITA'
2, 5
5, 3

se voglio aggiungere un altro pezzo per il prodotto con codice 5, l'array mi diventa cosi:
CODPRODOTTO, QUANTITA'
2, 5
5, 4
5, 1
ovvero mi aggiunge due volte lo stesso prezzo.


Potete suggerirmi come posso sistemare la cosa? Grazie in anticipo.
NB: e solo un progetto a scopo didattico, che presenter� agli esami di stato, quindi non sto creando un'applicazione da vendere!!