鍍金池/ 問(wèn)答/PHP  HTML/ php 如何用SESSION 記憶購(gòu)物車(chē)資訊?

php 如何用SESSION 記憶購(gòu)物車(chē)資訊?

我要將商品加入購(gòu)物車(chē)
我想先丟到SESSION去記憶
只是我不懂原理是什麼?
有大神可以幫我解析嗎??
會(huì)有商品名稱(chēng) 圖片 單價(jià) 數(shù)量 小計(jì)
甚至可以移除該商品
丟到SESSION去記憶要怎麼實(shí)現(xiàn)?
以往我 SESSION 都是單一值
例如 $_SESSION['abc'] = 'abc';
可以保存多個(gè)?且每個(gè)都有 key, value

我原本是想說(shuō)丟到數(shù)據(jù)庫(kù)記憶
但這方法對(duì)嗎?

回答
編輯回答
臭榴蓮

session可以存數(shù)組的,沒(méi)登錄你就先給他扔session里面,離開(kāi)頁(yè)面就消失了;如果登錄了你就把他同步到登錄的這個(gè)人的信息里面

2017年7月16日 17:55
編輯回答
失心人

你的做法和想法都是正確的,但具體實(shí)現(xiàn)要看業(yè)務(wù)場(chǎng)景。正常情況下

用戶(hù)登錄狀態(tài)下加入購(gòu)物車(chē)應(yīng)當(dāng)記錄同步其他端(存入數(shù)據(jù)庫(kù))
如用戶(hù)未登錄則存在session中
如用戶(hù)未登錄添加的購(gòu)物車(chē),在用戶(hù)登錄后自動(dòng)記錄到數(shù)據(jù)庫(kù)中

關(guān)于電商的設(shè)計(jì)可以看看我的文章
https://segmentfault.com/a/11...

2017年8月21日 06:11
編輯回答
萌小萌

簡(jiǎn)單點(diǎn)來(lái)說(shuō),操作SESSION可以視為操作數(shù)組一樣;
樓主說(shuō)session保存購(gòu)物車(chē)信息如何操作,demo如下:

// 假如SESSION里的購(gòu)物車(chē)商品保存的是這種數(shù)據(jù)形式
$_SESSION['cart']['goods'] = [
    'goods_id' => [
        'goods_name' => 'goods_name',
        'price'      => 'price',
        'spec'       => 'spec',
        'num'        => 'num'
    ],
    '1' => [
        'goods_name' => '橙子',
        'price'      => '15.00',
        'spec'       => '臍橙;',
        'num'        => '10'
    ],
    '2' => [
        'goods_name' => '蘋(píng)果',
        'price'      => '10.00',
        'spec'       => '紅蘋(píng)果;',
        'num'        => '5'
    ]
];

/**
 * 存儲(chǔ)商品信息到購(gòu)物車(chē)
 * 1、先取出SESSION購(gòu)物車(chē)?yán)锏纳唐窋?shù)據(jù)
 * 2、生成新的商品數(shù)據(jù)
 * 3、保存到SESSION
 */
$session_goods = $_SESSION['cart']['goods'];

$session_goods[11] = [
    'goods_name' => 'T恤',
    'price'      => '69.00',
    'spec'       => '顏色:紅色;品牌:以純;',
    'num'        => '1'
];

$_SESSION['cart']['goods'] = $session_goods;


/**
 * 購(gòu)物車(chē)?yán)锷唐稩D為1的商品需要?jiǎng)h除
 * 并更新保存到SESSION
 */
unset($goods['1']);
$_SESSION['cart']['goods'] = $goods;
2018年9月4日 22:17
編輯回答
乖乖瀦

購(gòu)物車(chē)一般存在緩存中

2018年3月9日 18:29
編輯回答
憶往昔
$_SESSION全局變量中可以存儲(chǔ)數(shù)組
session_start();

$_SESSION['goods'] = [
    'name' => 'goodsname',
    'pic' => 'url',
    'price' => 10.10,
    'num' => 100,
    'summary' => 999.50
];
print_r($_SESSION['goods']);

這樣存儲(chǔ)的數(shù)據(jù)在用戶(hù)關(guān)閉瀏覽器后就消失了,新開(kāi)瀏覽器窗口將創(chuàng)建新的會(huì)話(huà),之前的會(huì)話(huà)會(huì)在過(guò)期時(shí)自動(dòng)銷(xiāo)毀
2017年4月16日 03:03