Andreas: Session + Array = Warenkorb?

Beitrag lesen

Hallo!

<script language="PHP">

oh, oh, oh, was ist denn das? Das ist doch kein Javascript! Aber die Datei heißt .php, oder?

//add, id + menge sind input

if (add==ok)
{
        $temp=$_SESSION["warenkorb"];

soweit so gut!

$temp[$id][$menge];

Du weißt was Du hier machst?
Mal kurz zu Arrays:
http://www.php.net/manual/de/language.types.array.php
http://www.dclp-faq.de/q-arrays-mehrdimensional.html

Du kannst nicht die elemente so hintereinander hängen. Das wäre auch nicht mehrdimensional!!! Was Du willst ist:

$temp['id'] = $id;
$temp['menge'] $menge;

ich habe das mal so gelöst:

// Session-Warenkorb in Variable schreiben
$warenkorb = $_SESSION["warenkorb"];

// Neuen Artikel in eigenen Array schreiben
$neuer_artikel = array ('PID' => $PID,
                        'Beschreibung' => $beschr,
                        'Preis' => $preis,
                        'Anzahl' => $anzahl);

// neuen Artikel an Warenkorb-Array anhängen, der Warenkorb enthält pro Artikel einen Array
array_push($warenkorb,$neuer_artikel);

// geänderten Warenkorb wieder in Session speichern
$_SESSION["warenkorb"] = $warenkorb;

Dann hast Du immer zugriff auf den Artikel:

$warenkorb = $_SESSION["warenkorb"];

// Preis des ersten Artikels im Warenkorb
echo $warenkorb[1]['Preis'];

// Beschreibung das 12. Artikels:
echo $warenkorb[12]['Beschreibung'];

OK?

Den Warenkorb auflisten kannst Du dann z.B. so:

foreach(warenkorb as $artikel){
    echo $artikel['PID'];
    echo " - ";
    echo $artikel['Beschreibung'];
    echo " - ";
    echo $artikel['Preis'];
    echo "<br>";
}

Grüße
Andreas