WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Array fungerar inte (https://www.wn.se/forum/showthread.php?t=28268)

kallgard 2008-03-30 23:30

Hej!

Jag jobbar med en array som lagrar artiklar men den fungerar ej. Problemet är att den hela tiden byter ut den första artikeln och lägger inte dit någon ny. Hur ska jag göra för att det ska plussas på i arrayen. Koden ser ut så här:

Kod:

if (isset($_POST["add2cart"]))
  {
 if (!isset($_SESSION["artiklar"]))
        {
  $_SESSION["artiklar"] = array();
  $_SESSION["counts"] = array();
        }
 
 
       
        $i=0;
        while ($i<count($_SESSION["artiklar"]) && $_SESSION["artiklar"][$i] != $_POST["id"]) $i++;
        if ($i < count($_SESSION["artiklar"])) //increase current product's quantity
        {
 $_SESSION["counts"][$i]++;
        }
        else //no item - add it to $gids array
        {
 $_SESSION["artiklar"][] = $_POST["id"];
 $_SESSION["counts"][] = 1;
        }
       
        }

Resultatet av utskriften blir:

Kod:

The value of $_SESSION['0'] is '40'
Och inte:

The value of $_SESSION['0'] is '40'
The value of $_SESSION['1'] is '41'
The value of $_SESSION['2'] is '42'

Som jag vill att den ska bli

MMC 2008-03-31 00:07

Är det där verkligen hela koden? För i så fall har du glömt session_start()

Drew 2008-03-31 00:09

Citat:

$_SESSION["counts"][$i]++;
Sätt ++ innanför [ ]
Citat:

$_SESSION["counts"][$i++];

kallgard 2008-03-31 00:13

session_start() är med och jag har ändrat de "Drew" tog upp. Men det verkar vara mer som är fel.

Drew 2008-03-31 01:16

Testa att ändra
Citat:

$_SESSION["artiklar"][] = $_POST["id"];
$_SESSION["counts"][] = 1;

till
Citat:

$_SESSION["artiklar"][$i] = $_POST["id"];
$_SESSION["counts"][$i] = 1;

Men du sätter inte $_SESSION['0'], $_SESSION['1'] eller $_SESSION['2'] någonstans i den del av skriptet du visar.


Alla tider är GMT +2. Klockan är nu 22:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson