Permalänk
Medlem

Webbshop, välja smaker

Hejsan,

När man väljer en produkt med en smak så visas det såhär i kundkorgen:

Antal Pris Smak Totalt pris Produkt 2 399 Vanilj 798 Fisk

Det jag vill är nu att när man väljer ytterligare en smak av samma produkt, så vill jag att det skall se ut så här i kundkorgen:

Antal Pris Smak Totalt pris Produkt 2 399 Vanilj 798 Fisk Antal Pris Smak Totalt pris Produkt 5 399 Citrus 798 Fisk

Alltså, när man väljer en annan smak av samma produkt, så skall det genereras en ny rad på längen på sidan av denna produkten. När en produkt redan finns i kundkorgen med en smak och man lägger ytterligare en produkt av samma smak, så skall bara antalet ändras, alltså, det skall inte genereras en ny rad då.

För tillfället så ser min kod ut såhär som lägger till varor:

if(isset($_POST['add_to_cart'])) { if(empty($_POST['flavor']) && mysql_num_rows($flavors_result) > 0) { echo "Måste välja smak"; exit; } $flavor = $_POST['flavor']; $qty = $_POST['qty']; $_SESSION['cart'][$id]['flavor'][$flavor] = true; if(!isset($_SESSION['cart'][$id]['id'])) { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; #$_SESSION['cart'][$id]['flavor'] = $flavor; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } else { $_SESSION['cart'][$id]['qty'] = $_SESSION['cart'][$id]['qty'] + $qty; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } header("Location:index.php?page=products&page2=new_products&id=$id"); exit; }

Någon som kan hjälpa mig?

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Hejsan,

När man väljer en produkt med en smak så visas det såhär i kundkorgen:

Antal Pris Smak Totalt pris Produkt 2 399 Vanilj 798 Fisk

Det jag vill är nu att när man väljer ytterligare en smak av samma produkt, så vill jag att det skall se ut så här i kundkorgen:

Antal Pris Smak Totalt pris Produkt 2 399 Vanilj 798 Fisk Antal Pris Smak Totalt pris Produkt 5 399 Citrus 798 Fisk

Alltså, när man väljer en annan smak av samma produkt, så skall det genereras en ny rad på längen på sidan av denna produkten. När en produkt redan finns i kundkorgen med en smak och man lägger ytterligare en produkt av samma smak, så skall bara antalet ändras, alltså, det skall inte genereras en ny rad då.

För tillfället så ser min kod ut såhär som lägger till varor:

if(isset($_POST['add_to_cart'])) { if(empty($_POST['flavor']) && mysql_num_rows($flavors_result) > 0) { echo "Måste välja smak"; exit; } $flavor = $_POST['flavor']; $qty = $_POST['qty']; $_SESSION['cart'][$id]['flavor'][$flavor] = true; if(!isset($_SESSION['cart'][$id]['id'])) { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; #$_SESSION['cart'][$id]['flavor'] = $flavor; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } else { $_SESSION['cart'][$id]['qty'] = $_SESSION['cart'][$id]['qty'] + $qty; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } header("Location:index.php?page=products&page2=new_products&id=$id"); exit; }

Någon som kan hjälpa mig?

Problemet är väl att du använder 'id' som unik identifierare när det egentligen är 'id' + 'flavor'.

if(isset($_SESSION['cart'][$id]['id']) && $_SESSION['cart'][$id]['flavor'] == $flavor) //Om produkten med samma id och samma smak finns { //Öka nuvarande produkt med $qty } else { //Lägg till den som ny produkt }

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Problemet är väl att du använder 'id' som unik identifierare när det egentligen är 'id' + 'flavor'.

if(isset($_SESSION['cart'][$id]['id']) && $_SESSION['cart'][$id]['flavor'] == $flavor) //Om produkten med samma id och samma smak finns { //Öka nuvarande produkt med $qty } else { //Lägg till den som ny produkt }

Tack så jättemycket för svar!

Men jag får inte riktigt ihop min kod så att det vill fungera.

Jag gjorde om kodsnutten så att den blev såhär:

if(!isset($_SESSION['cart'][$id]['id'])) { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; #$_SESSION['cart'][$id]['flavor'] = $flavor; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } else { if(isset($_SESSION['cart'][$id]['id']) && $_SESSION['cart'][$id]['flavor'] == $flavor) //Om produkten med samma id och samma smak finns { $_SESSION['cart'][$id]['qty'] = $_SESSION['cart'][$id]['qty'] + $qty; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } }

Men den gör så att jag inte kan lägga till fler varianter av en och samma produkt.

Några idéer?

Visa signatur
Permalänk
Medlem

Kan dock inte hjälpa dig men vem satan vill ha Vanlij fisk? xD

Visa signatur

Kom ihåg att ALLTID citera mig om du vill ha svar!

|CPU: Intel Core i7 4790K Kyld av: Corsair H80 GPU: ASUS GTX 970 4GB Chassi: Phanteks Enthoo Evolv MOBO: MSI Z97M Gaming Nätagg: XFX 750W Silver SSD: Kingston 120GB SSDNow V300 HDD: Samsung Spinpoint F3 1TB 7200RPM + 1TB|

Permalänk

Lite off topic fråga men vad ska det anvädas till?

Permalänk
Medlem
Skrivet av mine.craft:

Lite off topic fråga men vad ska det anvädas till?

Det skall användas till en webbshop.

Skrivet av FobbanN:

Kan dock inte hjälpa dig men vem satan vill ha Vanlij fisk? xD

Det är bara ett exempel.

Några andra som kan hjälpa mig?

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Tack så jättemycket för svar!

Men jag får inte riktigt ihop min kod så att det vill fungera.

Jag gjorde om kodsnutten så att den blev såhär:

if(!isset($_SESSION['cart'][$id]['id'])) { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; #$_SESSION['cart'][$id]['flavor'] = $flavor; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } else { if(isset($_SESSION['cart'][$id]['id']) && $_SESSION['cart'][$id]['flavor'] == $flavor) //Om produkten med samma id och samma smak finns { $_SESSION['cart'][$id]['qty'] = $_SESSION['cart'][$id]['qty'] + $qty; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } }

Men den gör så att jag inte kan lägga till fler varianter av en och samma produkt.

Några idéer?

Det stämmer bra det du säger. Din nuvarande kod gör så att du inte kan lägga till id=5, flavor=sur om du redan har en annan smak av produkten med id=5 i kundvagnen.

Jag passar på att fråga. Vad har det för effekt med ...[$flavor] = true?

Om du skriver koden som jag skrev den och fyller i där jag kommenterade så fungerar det.
Jag har gjort det åt dig nu, bara klippt och klistrat din kod:

if(isset($_SESSION['cart'][$id]['id']) && $_SESSION['cart'][$id]['flavor'] == $flavor) //Om produkten med samma id och samma smak finns { $_SESSION['cart'][$id]['qty'] = $_SESSION['cart'][$id]['qty'] + $qty; $_SESSION['cart'][$id]['flavor'][$flavor] = true; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; $_SESSION['cart'][$id]['flavor'] = $flavor; $_SESSION['cart'][$id]['flavor'][$flavor] = true; }

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Hejsan och tack för svar.

Jag gjorde exakt som du gjorde förut men det ville inte fungera. Jag tog din kod och klistrade in och det fungerade inte heller. Varken antalet uppdateras eller det läggs till en ny smak.

[$flavor] = true gör så att arrayen fylls på med smaker och så att inte en smak som man redan har valt skrivs över med en annan smak man väljer.

Har du något annat förslag?

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Hejsan och tack för svar.

Jag gjorde exakt som du gjorde förut men det ville inte fungera. Jag tog din kod och klistrade in och det fungerade inte heller. Varken antalet uppdateras eller det läggs till en ny smak.

[$flavor] = true gör så att arrayen fylls på med smaker och så att inte en smak som man redan har valt skrivs över med en annan smak man väljer.

Har du något annat förslag?

Jag hjälper gärna till. Om du ser till att citera så hittar jag tillbaka snabbare.

Ja, ok. Där har vi ju det.

Jag ser nu vad felet är. Jag har stirrat mig blind på din kod utan att faktiskt tolka vad den gör.
Datastrukturen som den ser ut nu har inte stöd för flera smaker. Eftersom det är en associerad/indexerad array så kommer $id-positionen att skrivas över med det nya datat för varje ny smak av samma produkt som man lägger till. 'qty' sparar vi på ID-nivå vilket gör att det inte sparas olika kvantiteter. Detta måste ändras.

Detta är ett problem med datastrukturen du har valt. Men jag hade egentligen sagt att det är fel att säga att det är samma produkt fast olika smak. En Fanta är en Fanta inte en Coca-Cola med smak av Fanta, förstår du hur jag menar?

Men vi kan väl försöka lösa det ändå.

//På detta vis ser det ut nu: $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; $_SESSION['cart'][$id]['flavor'] = $flavor; //På detta vis måste det bli: $_SESSION['cart'][$id][$flavor]['id'] = $id; $_SESSION['cart'][$id][$flavor]['qty'] = $qty; $_SESSION['cart'][$id][$flavor]['flavor'] = $flavor;

Då borde koden för att lägga till/uppdatera se ut på följande sätt.

//Jag struntar i [$flavor] = true, jag tror det fungerar ändå //Lite onödigt med redundansen av värden men det är nog något du använder för presentation? if(isset($_SESSION['cart'][$id][$flavor])) { $_SESSION['cart'][$id][$flavor]['qty'] = $_SESSION['cart'][$id][$flavor]['qty'] + $qty; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id][$flavor]['qty'] = $qty; $_SESSION['cart'][$id][$flavor]['flavor'] = $flavor; }

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av FobbanN:

Kan dock inte hjälpa dig men vem satan vill ha Vanlij fisk? xD

Rofl, blev bara tvungen att citera dig xD

Visa signatur

Kom ihåg att ''Citera" mig ifall ni vill ha svar

Intel i5-4460 | GTX 760 | MSI B85M G43 | Crucial Ballistix 8GB | Intel 335 SSD

Permalänk
Medlem
Skrivet av Leedow:

Jag hjälper gärna till. Om du ser till att citera så hittar jag tillbaka snabbare.

Ja, ok. Där har vi ju det.

Jag ser nu vad felet är. Jag har stirrat mig blind på din kod utan att faktiskt tolka vad den gör.
Datastrukturen som den ser ut nu har inte stöd för flera smaker. Eftersom det är en associerad/indexerad array så kommer $id-positionen att skrivas över med det nya datat för varje ny smak av samma produkt som man lägger till. 'qty' sparar vi på ID-nivå vilket gör att det inte sparas olika kvantiteter. Detta måste ändras.

Detta är ett problem med datastrukturen du har valt. Men jag hade egentligen sagt att det är fel att säga att det är samma produkt fast olika smak. En Fanta är en Fanta inte en Coca-Cola med smak av Fanta, förstår du hur jag menar?

Men vi kan väl försöka lösa det ändå.

//På detta vis ser det ut nu: $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['qty'] = $qty; $_SESSION['cart'][$id]['flavor'] = $flavor; //På detta vis måste det bli: $_SESSION['cart'][$id][$flavor]['id'] = $id; $_SESSION['cart'][$id][$flavor]['qty'] = $qty; $_SESSION['cart'][$id][$flavor]['flavor'] = $flavor;

Då borde koden för att lägga till/uppdatera se ut på följande sätt.

//Jag struntar i [$flavor] = true, jag tror det fungerar ändå //Lite onödigt med redundansen av värden men det är nog något du använder för presentation? if(isset($_SESSION['cart'][$id][$flavor])) { $_SESSION['cart'][$id][$flavor]['qty'] = $_SESSION['cart'][$id][$flavor]['qty'] + $qty; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id][$flavor]['qty'] = $qty; $_SESSION['cart'][$id][$flavor]['flavor'] = $flavor; }

Hejsan och tack så jättemycket för svar.

Detta vill inte heller fungera. Med denna koden så slutade min räknare som räknar hur många produkter det finns i kundkorgen att fungera.

Såhär ser det ut i arrayen när jag har valt 1 produkt av olika smak:

array(1) { [1]=> array(3) { ["id"]=> string(1) "1" ["Citrus"]=> array(2) { ["qty"]=> string(1) "1" ["flavor"]=> string(6) "Citrus" } ["Choklad"]=> array(2) { ["qty"]=> string(1) "1" ["flavor"]=> string(7) "Choklad" } } }

Tack så jättemycket för svaren än så länge.

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Hejsan och tack så jättemycket för svar.

Detta vill inte heller fungera. Med denna koden så slutade min räknare som räknar hur många produkter det finns i kundkorgen att fungera.

Såhär ser det ut i arrayen när jag har valt 1 produkt av olika smak:

array(1) { [1]=> array(3) { ["id"]=> string(1) "1" ["Citrus"]=> array(2) { ["qty"]=> string(1) "1" ["flavor"]=> string(6) "Citrus" } ["Choklad"]=> array(2) { ["qty"]=> string(1) "1" ["flavor"]=> string(7) "Choklad" } } }

Tack så jättemycket för svaren än så länge.

Ja, det stämmer det med. Eftersom jag gjorde om hur du sparar datat så måste man även göra om hur man presenterar datat.

Snyggar man till koden lite så blir det enklare att se hur den ser ut.

array(1) { [1] = > array(3) { ["id"] = > string(1)"1" ["Citrus"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(6)"Citrus" } ["Choklad"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(7)"Choklad" } } }

Vilket betyder att:
Parent-arrayen innehåller bara id:n. För varje nytt id så blir det en ny dimension (child) array.
I denna array så har vi "id" och alla smaker. Varje smak är även detta en array för att hålla namnet på smaken och antalet.

Eftersom jag inte vet hur din nuvarande kod ser ut så vill jag inte göra någon variant för att lösa det. Men det kanske är så att du ser nu hur du ska lösa presentationen?

Det hade varit bättre om du hade ett "smak-id" än en text. Du kanske döper om exempelvis smaken "lime" till "citron/lime" och då kan det ställa till det.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Ja, det stämmer det med. Eftersom jag gjorde om hur du sparar datat så måste man även göra om hur man presenterar datat.

Snyggar man till koden lite så blir det enklare att se hur den ser ut.

array(1) { [1] = > array(3) { ["id"] = > string(1)"1" ["Citrus"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(6)"Citrus" } ["Choklad"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(7)"Choklad" } } }

Vilket betyder att:
Parent-arrayen innehåller bara id:n. För varje nytt id så blir det en ny dimension (child) array.
I denna array så har vi "id" och alla smaker. Varje smak är även detta en array för att hålla namnet på smaken och antalet.

Eftersom jag inte vet hur din nuvarande kod ser ut så vill jag inte göra någon variant för att lösa det. Men det kanske är så att du ser nu hur du ska lösa presentationen?

Det hade varit bättre om du hade ett "smak-id" än en text. Du kanske döper om exempelvis smaken "lime" till "citron/lime" och då kan det ställa till det.

Jag skall försöka lösa detta. Skall läsa på lite.

Här är i alla fall min cart.php som skriver ut produkterna i kundkorgen:

<div id="maincontent"> <?php if(empty($_SESSION['cart'])) { echo "<h2>Inga produkter</h2>"; exit; } else { if(isset($_SESSION['cart'])) { var_dump($_SESSION['cart']); $total_price = 0; foreach($_SESSION['cart'] as $qty) { echo $qty['flavor']; $id = $qty['id']; $get_products = "SELECT product_picture,product_name,price,product_id FROM products WHERE product_id=$id"; $result_products = mysql_query($get_products) or die(mysql_error()); ?> <div id="shopping_cart"> <table border="0" cellspacing="0" cellpadding="0" width="700"> <td class="shopping_cart">Ta bort</td> <td class="shopping_cart">Antal</td> <td class="shopping_cart">Pris</td> <td class="shopping_cart">Smak</td> <td class="shopping_cart">Totalt pris</td> <td class="shopping_cart">Produkt</td> <td class="shopping_cart"></td> <tr> <?php while($row = mysql_fetch_row($result_products)) { ?> <td><a href="index.php?page=cart&remove_item=<?= $qty['id'] ?>">X</a></td> <td><?= $qty['qty']?></td> <td><?= $row[2] ?></td> <td><?= $qty['flavor'] ?> </td> <td><?= $qty['qty'] * $row[2] ?></td> <td style="width: 150px"><?= $row[1] ?></td> <td style=""><img src="admin/logged_in/product_images/thumb/<?= $row[0] ?>"></td> <?php $total_price += $qty['qty'] * $row[2]; if(isset($_GET['remove_item'])) { $remove = $_GET['remove_item']; unset($_SESSION['cart'][$remove]); header("Location: index.php?page=cart"); exit; } } ?> </tr> </table> <?php } echo $total_price; } } ?> </div> </div>

Och här är när man lägger till produkter:

<?php if(isset($_POST['add_to_cart'])) { if(empty($_POST['flavor']) && mysql_num_rows($flavors_result) > 0) { echo "Måste välja smak"; exit; } $flavor = $_POST['flavor']; $qty = $_POST['qty']; if(isset($_SESSION['cart'][$id][$flavor])) { $_SESSION['cart'][$id][$flavor]['qty'] = $_SESSION['cart'][$id][$flavor]['qty'] + $qty; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id][$flavor]['qty'] = $qty; $_SESSION['cart'][$id][$flavor]['flavor'] = $flavor; } header("Location:index.php?page=products&page2=new_products&id=$id"); exit; ?> <?php } ?>

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Jag skall försöka lösa detta. Skall läsa på lite.

Här är i alla fall min cart.php som skriver ut produkterna i kundkorgen:

<div id="maincontent"> <?php if(empty($_SESSION['cart'])) { echo "<h2>Inga produkter</h2>"; exit; } else { if(isset($_SESSION['cart'])) { var_dump($_SESSION['cart']); $total_price = 0; foreach($_SESSION['cart'] as $qty) { echo $qty['flavor']; $id = $qty['id']; $get_products = "SELECT product_picture,product_name,price,product_id FROM products WHERE product_id=$id"; $result_products = mysql_query($get_products) or die(mysql_error()); ?> <div id="shopping_cart"> <table border="0" cellspacing="0" cellpadding="0" width="700"> <td class="shopping_cart">Ta bort</td> <td class="shopping_cart">Antal</td> <td class="shopping_cart">Pris</td> <td class="shopping_cart">Smak</td> <td class="shopping_cart">Totalt pris</td> <td class="shopping_cart">Produkt</td> <td class="shopping_cart"></td> <tr> <?php while($row = mysql_fetch_row($result_products)) { ?> <td><a href="index.php?page=cart&remove_item=<?= $qty['id'] ?>">X</a></td> <td><?= $qty['qty']?></td> <td><?= $row[2] ?></td> <td><?= $qty['flavor'] ?> </td> <td><?= $qty['qty'] * $row[2] ?></td> <td style="width: 150px"><?= $row[1] ?></td> <td style=""><img src="admin/logged_in/product_images/thumb/<?= $row[0] ?>"></td> <?php $total_price += $qty['qty'] * $row[2]; if(isset($_GET['remove_item'])) { $remove = $_GET['remove_item']; unset($_SESSION['cart'][$remove]); header("Location: index.php?page=cart"); exit; } } ?> </tr> </table> <?php } echo $total_price; } } ?> </div> </div>

Eftersom du kör en query utan att escape:a eller göra prepared statement så har du en risk för sql-injection med tanke på din query med $id. $id behöver inte vara ett nummer (vad man som utvecklare antar) eftersom man kan påverka värdet innan det skickas till servern till exempelvis någon elak query.

Men av att se din kod så tror jag det är bäst att man gör om datastrukturen lite till. Så den ser ut på detta vis:

array(1) { [1] = > array(3) { ["id"] = > string(1)"1" ['flavors'] => array(2) { ["Citrus"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(6)"Citrus" } ["Choklad"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(7)"Choklad" } } } }

Då kan du loopa "flavors" arrayen för att få reda på alla smakerna istället för att behöva chansa dig till vilka smaker som finns direkt i parent-arrayen till id:t.

Används då på detta vis när du skapar upp det.
$_SESSION['cart'][$id]['id'] = $id;
$_SESSION['cart'][$id]['flavors'][$flavor]['qty'] = $qty;
$_SESSION['cart'][$id]['flavors'][$flavor]['flavor'] = $flavor;

Låter det genomförbart?

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Eftersom du kör en query utan att escape:a eller göra prepared statement så har du en risk för sql-injection med tanke på din query med $id. $id behöver inte vara ett nummer (vad man som utvecklare antar) eftersom man kan påverka värdet innan det skickas till servern till exempelvis någon elak query.

Men av att se din kod så tror jag det är bäst att man gör om datastrukturen lite till. Så den ser ut på detta vis:

array(1) { [1] = > array(3) { ["id"] = > string(1)"1" ['flavors'] => array(2) { ["Citrus"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(6)"Citrus" } ["Choklad"] = > array(2) { ["qty"] = > string(1)"1" ["flavor"] = > string(7)"Choklad" } } } }

Då kan du loopa "flavors" arrayen för att få reda på alla smakerna istället för att behöva chansa dig till vilka smaker som finns direkt i parent-arrayen till id:t.

Används då på detta vis när du skapar upp det.
$_SESSION['cart'][$id]['id'] = $id;
$_SESSION['cart'][$id]['flavors'][$flavor]['qty'] = $qty;
$_SESSION['cart'][$id]['flavors'][$flavor]['flavor'] = $flavor;

Låter det genomförbart?

Menar du såhär:

if(isset($_SESSION['cart'][$id][$flavor])) { $_SESSION['cart'][$id][$flavor]['qty'] = $_SESSION['cart'][$id][$flavor]['qty'] + $qty; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['flavors'][$flavor]['qty'] = $qty; $_SESSION['cart'][$id]['flavors'][$flavor]['flavor'] = $flavor; }

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Menar du såhär:

if(isset($_SESSION['cart'][$id][$flavor])) { $_SESSION['cart'][$id][$flavor]['qty'] = $_SESSION['cart'][$id][$flavor]['qty'] + $qty; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['flavors'][$flavor]['qty'] = $qty; $_SESSION['cart'][$id]['flavors'][$flavor]['flavor'] = $flavor; }

Nästan.

if(isset($_SESSION['cart'][$id]['flavors'][$flavor])) { $_SESSION['cart'][$id]['flavors'][$flavor]['qty'] = $_SESSION['cart'][$id]['flavors'][$flavor]['qty'] + $qty; } else { $_SESSION['cart'][$id]['id'] = $id; $_SESSION['cart'][$id]['flavors'][$flavor]['qty'] = $qty; $_SESSION['cart'][$id]['flavors'][$flavor]['flavor'] = $flavor; }

Edit: Indenteringsproblem

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem

Jag har nu suttit ner och försökt loopa igenom så att jag får fram smakerna, man jag fattar ärligt talat inte hur ska loopa igenom en sådan här flerdimensionell array:

$_SESSION['cart'][$id]['flavors'][$flavor]['flavor']

Visa signatur
Permalänk
Medlem
Skrivet av Brajan:

Jag har nu suttit ner och försökt loopa igenom så att jag får fram smakerna, man jag fattar ärligt talat inte hur ska loopa igenom en sådan här flerdimensionell array:

$_SESSION['cart'][$id]['flavors'][$flavor]['flavor']

Borde fungera på detta sätt. Obs, otestad kod.

$cart = $_SESSION['cart']; foreach($cart as $product) { echo $product['id']; $flavors = $cart['flavors']; foreach($flavors as $flavor) { echo $flavor['flavor']; echo $flavor['qty']; } }

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?

Permalänk
Medlem
Skrivet av Leedow:

Borde fungera på detta sätt. Obs, otestad kod.

$cart = $_SESSION['cart']; foreach($cart as $product) { echo $product['id']; $flavors = $cart['flavors']; foreach($flavors as $flavor) { echo $flavor['flavor']; echo $flavor['qty']; } }

Fantastiskt!

Jag hade gjort något liknande:

foreach($_SESSION['cart'] as $key => $val) { echo $key . "<br>"; foreach($val as $keys => $value) { echo $value; } }

Men lyckades inte så bra. Jag måste träna lite till på det här med flerdimensionella arrayer.

Tack så väldigt mycket!

Visa signatur