Aggiunta prodotti nel carrello con lo stesso in e varianti diverse

maxnegri2036

Nuovo Utente
10 Mar 2021
12
0
1
Buonasera a tutti.
Ho un carrello della spesa e vorrei poter aggiungere prodotti con lo stesso id ma con varianti diverse.
Quando provo ad aggiungere lo stesso prodotto con varianti diverse, mi sovrascrive il primo e resta solo l'ultimo aggiunto.
Questo è il mio codice:

PHP:
<?php
session_start();

//$quantity=$_POST["product_qty"];
//var_dump($quantity); die();
//controlla se ci sono varianti
if (isset($_POST['variante'])){
 // original string
$OriginalString = $_POST['variante'];
$matches = implode(',', $OriginalString);
$sql = "SELECT * FROM varianti WHERE variante_id IN ($matches)";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$descrizione_variante[]=$row["descrizione_variante"];
$valore_variante[]=$row["valore_variante"];
$variante_id[]=$row["variante_id"];
$tipo_variante[]=$row["tipo_variante"];
$somma +=$row["valore_variante"];
//$_SESSION['descrizione_variante'][]=$descrizione_variante;
$new_product['valore_variante']=$valore_variante;
$new_product['descrizione_variante']=$descrizione_variante;
$new_product['variante_id']=$variante_id;
}
}
}
//controlla se ci sono aggiunte
if (isset($_POST['aggiunta'])){
// original string
$OriginalString = $_POST['aggiunta'];
$matches = implode(',', $OriginalString);
$sql = "SELECT * FROM aggiunte WHERE aggiunta_id IN ($matches)";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
$descrizione_aggiunta[]=$row["descrizione_aggiunta"];
$valore_aggiunta[]=$row["valore_aggiunta"];
$aggiunta_id[]=$row["aggiunta_id"];
$tipo_aggiunta[]=$row["tipo_aggiunta"];
$somma +=$row["valore_aggiunta"];
$_SESSION['aggiunta_id'][]=$aggiunta_id;
$new_product['valore_aggiunta']=$valore_aggiunta;
$new_product['descrizione_aggiunta']=$descrizione_aggiunta;
$new_product['aggiunta_id']=$aggiunta_id;
}
}
}

//controlla se ci sono opzioni
if (isset($_POST['opzione'])){
$OriginalString = $_POST['opzione'];
$matches = implode(',', $OriginalString);
$sql = "SELECT * FROM opzioni WHERE opzione_id IN ($matches)";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$descrizione_opzione[]=$row["descrizione_opzione"];
$valore_opzione[]=$row["valore_opzione"];
$opzione_id[]=$row["opzione_id"];
$tipo_opzione[]=$row["tipo_opzione"];
$somma +=$row["valore_opzione"];
//$_SESSION['descrizione_opzione'][]=$descrizione_opzione;
$new_product['valore_opzione']=$valore_opzione;
$new_product['descrizione_opzione']=$descrizione_opzione;
$new_product['opzione_id']=$opzione_id;
}
}
}

if(isset($_POST["remove_code"]) OR isset($_POST["product_qty"])  && isset($_SESSION['coupon']))
{
    unset($_SESSION['coupon']);
}


//aggiungi prodotto alla sessione o creane uno nuovo
if(isset($_POST["type"]) && $_POST["type"]=='add' && $_POST["product_qty"]>0  )
{
unset($_SESSION['coupon']);
foreach($_POST as $key => $value){ //aggiungi tutte le variabili post all'array new_product
$new_product[$key] = filter_var($value, FILTER_SANITIZE_STRING);
}
unset($new_product['type']);
unset($new_product['return_url']);
//we need to get product name and price from database.
$statement = $conn->prepare("SELECT coupon_name,prezzo_reale,acconto,coupon_shop,multi_deal,gratis FROM coupons_coupons WHERE coupon_id=? LIMIT 1");
$statement->bind_param('s', $new_product['product_code']);
$statement->execute();
$statement->bind_result($coupon_name,$prezzo_reale,$acconto,$coupon_shop,$multi_deal,$gratis);
while($statement->fetch()){
//fetch product name, price from db and add to new_product array
$new_product["coupon_name"] = $coupon_name;
$new_product["multideal"] = $multi_deal;
$new_product["coupon_shop"] = $coupon_shop;
$prodotto=$_POST['product_code'];
$new_product["product_price"] =  $prezzo_reale+$somma; 
if(isset($_SESSION['shop'])){
}
else
{
$_SESSION['shop'][] = $new_product["coupon_shop"];
}

if(isset($_SESSION["cart_products"])){  //se la sessione var esiste già
if(isset($_SESSION["cart_products"][$new_product['product_code']])) //controlla che l'elemento esista nell'array prodotti
{
unset($_SESSION["cart_products"][$new_product['product_code']]); //annulla il vecchio elemento dell'array
}           
}
$_SESSION["cart_products"][$new_product['product_code']] = $new_product; //aggiorna o crea una sessione di prodotto con un nuovo elemento
}
}


//update or remove items
if(isset($_POST["product_qty"]) || isset($_POST["remove_code"]))
{
    //update item quantity in product session
    if(isset($_POST["product_qty"]) && is_array($_POST["product_qty"])){
        foreach($_POST["product_qty"] as $key => $value){
            if(is_numeric($value)){
                $_SESSION["cart_products"][$key]["product_qty"] = $value;
            }
        }
    }

//remove an item from product session
if(isset($_POST["remove_code"]) && is_array($_POST["remove_code"])){
foreach($_POST["remove_code"] as $key){
unset($_SESSION["cart_products"][$key]);
unset($new_product['multideal']);
unset($_SESSION['descrizione_opzione']);
}   
}
}
//back to return url
$return_url =$_POST["return_url"]; //return url
header('Location:'.$return_url);

Spero qualcuno possa illuminarmi come fare. Grazie!
 
Discussioni simili
Autore Titolo Forum Risposte Data
D [HTML] scorrimento dopo un'aggiunta di dati HTML e CSS 5
S [OFFRO] Rimozione o aggiunta di Password ai file PDF e opzionalmente loro modifica Offerte e Richieste di Lavoro e/o Collaborazione 2
zorro Aggiunta di immagini al sito Leggi, Normative e Fisco 0
T PHP: aggiunta a query che non so fare... PHP 2
A [Javascript] Mancata aggiunta di una classe al click Javascript 1
M Aggiunta funzionalità script php Regione Provincia Comune PHP 1
F Aggiunta div ultimi 4 post WordPress 1
L Google maps aggiunta makers da php Javascript 4
J Aggiunta di un effetto di transizione al plugin Quick Pager jQuery 0
C Aggiunta nuovo ruolo utente e impossibile modificare le pagine WordPress 7
L innerHTML aggiunta di campi Javascript 2
G Form con aggiunta righe PHP 3
P rilevare dati db e inserirli in tabella con aggiunta form PHP 23
I aggiunta fotogrammi Flash 5
C Hosting Aruba Aggiunta certificati Hosting 4
S mini-community con aggiunta amici PHP 4
F aggiunta campi commenti wordpress WordPress 1
T java-aggiunta cartelle JTree Java 0
F domande su active directory e aggiunta di pc ad una rete.. Reti LAN e Wireless 0
P aggiunta modulo invio allegati a form mail PHP 15
M aggiunta di checkbox obbligatorio Classic ASP 2
P aggiunta pagine disastroso PHP 6
B Counter: aggiunta conteggio tempo su video Flash 1
L Tag HTML per aggiunta immagini in TextArea Flash 1
Z Accesso amministratori, aggiunta testo e creazione di link con ancora PHP 0
G slide immagini + aggiunta funzioni STOP E RIPRENDI Javascript 0
A Aggiunta RAM: problemi ... Hardware 2
L cerco programma stile teleport... ma con un aggiunta.. Discussioni Varie 0
G flask, aggiunta link Flash 21
Maverick1000tt Aggiunta filmato Flash 1
C aggiunta dinamica di una tabella senza ridirezione Javascript 3
L Aggiunta di nuovi script e spiegazione in ITA Supporto Mr.Webmaster 5
P Prodotti, foto, titolo e descrizione E-Commerce 0
C Ricerca Prodotti Woocommerce Javascript 0
M Estrarre soltanto i prodotti con stessa descrizione PHP 10
D Pulsante aggiungi al carrello nello slider prodotti in offerta WordPress 4
E Sito con procedure guidate per la scelta prodotti CMS (Content Management System) 0
L Plugin per scheda prodotti Woocommerce WordPress 0
D Categoria prodotti in evidenza su Vetrina Social Media Marketing 0
R E-commerce max quantità prodotti PHP 1
M [WordPress] Problema con pagina prodotti WordPress 0
W [WooCommerce] importare Prodotti suddivisi con: Categorie, Prodotti, Attributi E-Commerce 6
W [WordPress] [WooCommerce] Non trovo più la Tab Visulizzazione dei Prodotti in questo nuovo Plugin WordPress 2
P [CERCO] Webmaster per cataloghi prodotti csv/xml Offerte e Richieste di Lavoro e/o Collaborazione 3
maxnegri Sommare i prezzi dei prodotti aggiunti al carrello di diverse aziende con Select sum php mysqli PHP 10
V Semplice barra di ricerca con filtro categorie prodotti E-Commerce 0
S [VENDO] ecommerce prodotti per CANI - business automatico pronto all'uso! Compravendita siti e domini 0
U [WordPress] Schede singoli prodotti modificabili, responsive, aggiornabili? WordPress 2
E [WordPress] pagine prodotti o plugin ecommerce WordPress 5
B (ACQUISTO) PAGINA FACEBOOK PRODOTTI/ MARCHI AMBITO FOOD CAFFé Annunci servizi di Social Media Marketing 1

Discussioni simili