Archief - PHP: trouble met online shop

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

joyraider

Legacy Member
Hi all,
ik ben bezig met een vrij basic online shop, en ik zit vast. :)

Het hele producten-categorieën-login-systeem draait al, alleen met het winkelkarretje weet ik me geen raad... Ik heb wat zitten schmucken met een online tutorial, maar die werkt bij mij eigenlijk niet.

Hier volgt mijn addtocart.php:

Code:
<?php
include "head.php";

$cart = $_SESSION['cart'];
if ($cart) {
    $cart .= ','.$_GET['id'];
} else {
    $cart = $_GET['id'];
}
$_SESSION['cart'] = $cart;

$cart = $_SESSION['cart'];
if ($cart) {
    $items = explode(',',$cart);
    $contents = array();
    foreach ($items as $item) {
        $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
    }
    }
    
$id = $_GET['id'];
$sql = "SELECT * FROM tblproducts WHERE id = '$id'";
$resultaat = mysql_query($sql);

while ($record = mysql_fetch_object($resultaat)) {
echo "<div class=\"note\">\"";
echo $record->name;
echo "\" werd aan het winkelkarretje toegevoegd.<br /><br />";
echo "<a href=\"#\" onclick=\"history.go(-1)\"><img src=\"okbutton.gif\" alt=\"\" border=\"\" /></div>";


}


include "foot.php";
?>

Dit werkt dus. Je klikt op "add to cart" waarna hij naar bvb addtocart.php?id=27 gaat, dan wordt product 27 aan die session 'cart' toegevoegd, je krijgt een bericht dat het product is toegevoegd, en bij "you have xx items in your cart" wordt er één bijgeteld.

Nu zit ik dus volledig vast met cart.php, waar de producten moeten worden weergegeven. Ik ken de basis van sessions en de basis van arrays, maar ik heb nu echt geen idee hoe ik mooi alle producten op een rijtje moet zetten. Met andere woorden: hoe haal ik de afzonderlijke id's uit die array (de session) en hoe laat ik die corresponderen met de database om de productnaam en prijs erbij te zetten?

Als iemand hier een vrij simpele uitleg voor heeft... Ik dank u zeer! :)

joyraider

Legacy Member
Code:
$cart = $_SESSION['cart'];
if ($cart) {
    $cart .= ','.$_GET['id'];
} else {
    $cart = $_GET['id'];
}
$_SESSION['cart'] = $cart;

$cart = $_SESSION['cart'];
if ($cart) {
    $items = explode(',',$cart);
    $contents = array();
    foreach ($items as $item) {
        $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
    }
    }

Dit deel heb ik trouwens uit de tutorial, en ik moet eerlijk zeggen dat ik het nog niet helemaal snap. Ik snap dat ie de array (de session) pakt, en er een waarde bijzet, maar verder geraak ik er geen wijs uit :)

Voor alle duidelijkheid, ik zoek dus iets wat zou moeten lijken op het volgende:

- array (de session) splitten (dit krijg ik zelf niet voor elkaar, alles geprobeerd van explode() tot split())
- voor elke waarde de overeenkomstige data uit database halen
- mooi al die data weergeven

Dus, stel in mijn winkelmandje (session cart) heb ik de items 14 en 31; nu moet ik in mijn cart.php een lijstje krijgen van die producten.
Item 14 is bijvoorbeeld een schroevendraaier en 31 is een tuinslang, dan krijg ik de volgende lijst:

1x Schroevendraaier - €5,99
1x Tuinslang - €14,99

Als ik dit eenmaal aan de praat heb zal ik de totalen e.d. ook wel voor elkaar krijgen, maar eerst moet ik weten hoe ik het bovenstaande doe :)

joyraider

Legacy Member
Ondanks alle snelle reacties heb ik het inmiddels toch al gevonden; deze mag dicht...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan