Autor Zpráva
larakyn
Profil
Ahoj,

mám sessions např. $_SESSION["id_produktu"], $_SESSION["nazev_produktu"], $_SESSION["pocet_kusu"] atd...
A když uživatel přidá do košíku 1 položku, session se v pořádku vyplní, ale když by přidal další, současné sessions by se přepsaly na ty nové...
Lze nějakým způsobem uložit session se stejným názvem v více hodnotama a že by zkrátka id_produktu bylo 3 měla automaticky u sebe pocet kusu, nazev produktu apod s tím, co k tomu poravdu patří?

Děkuji za odpověď :)
RastyAmateur
Profil
Uděláš to $_SESSION["id_produktu"], $_SESSION["nazev_produktu"], $_SESSION["pocet_kusu"] jako pole. Hodnoty přidáváš takto: $_SESSION["id_produktu"][] = "hodnota"; a když si necháš vypsat $_SESSION["id_produktu"][0] dostaneš "hodnota". Pak se s tím dobře pracuje ve foreach apod.


Ještě bych asi doporučil to dát do jednoho velkého pole:

$_SESSION["kosik"]["id_produktu"]
. Získáš tím to, že až v budoucnu budeš chtít do session přidat něco jiného, budeš to mít krásně roztřízené...
Keeehi
Profil
Nedělal bych pole idček produktů, pole množství produktů, pole ... ale jen jedno pole produktů s vlastnostmi.
Tedy
$produkt = [
    "id" => 123,
    "pocet" => 4,
    "nazev" => "hruška"
];

$_SESSION["kosik"][] = $produkt;

// výpis
$_SESSION["kosik"][0]["id_produktu"];
A proč? Když budeš chtít položku z košíku odstranit, stačí ti smazat jeden prvek z pole $_SESSION["kosik"] a ne z n polí kde n je počet atributů produktu v košíku.
juriad
Profil
larakyn:
Podívej se na mou sadu funkcí v Diskuse JPW: košík - kde mám chybu? a diskusi dále.
Pak se nebudeš vůbec muset zabývat SESSION, prostě jen použiješ příslušnou funkci.
Upozorňuji, že já jsem proti tomu dávat do košíku cokoli, co se dá získat jinak (například název tam nepatři, protože ten lze získat dotazem podle id_produktu).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: