2011-07-06 20 views
3

我正在致力於銷售各種產品的電子商務網站(網上購物)。我想向用戶展示用戶最近瀏覽過的產品列表。你能幫我實現這個嗎?如何在電子商務網站上添加「最近訪問的產品」的功能?

我在Windows服務器上使用PHP,MySQL和Apache HTTP。

謝謝!

+0

您可以使用會話並保存用戶的產品ID:'session_start(); $ _SESSION ['products'] [] = $ current_product_id;' – kongr45gpen

+0

您需要研究在PHP中使用會話變量。或者,您可以將IP存儲在數據庫中,以及序列化的產品密鑰陣列,無論如何都可以。如果你想讓某人聘請開發人員,那麼這裏沒有人會爲你寫代碼。有一個去尋求幫助是我們在這裏做的。 –

回答

2

您可以使用數據庫或cookie。該數據庫方法即使用戶清除其瀏覽器Cookie的持續:

在數據庫中像創建表:

userid, 
productid, 
viewdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

每當訪問者瀏覽一個產品,你只需插入一條記錄到數據庫中識別用戶,產品以及訪問時間的時間戳。

-- Insert 
INSERT INTO recentlyviewed (userid, productid) VALUES (userid, productid); 

用戶加載下一頁時,您檢索他們認爲最近ñ產品,並顯示它們。定期地,您可以運行計劃作業來清理比您選擇過期的天數更早的查看記錄。

-- Cleanup old records after 14 days 
DELETE FROM recentlyviewed WHERE viewdate < DATE_ADD(NOW(), INTERVAL -14 DAY); 
+0

只有當我們知道用戶標識(即登錄用戶)時,這纔會起作用。我們如何獲得最近瀏覽過的匿名用戶的產品,這些用戶訪問並查找了一些產品,並在一週後再次訪問商店,以便我們展示他們。 – Raaga

+0

@Raaga您應該爲匿名用戶存儲一個cookie,該cookie將會話ID或某個標識符保存到'recentlyviewed'列表中。而不是'userid','recentlyviewed'表會有一個用於該會話ID或cookie標記的列。 –

+0

它可以累積大量記錄的表格。如何克服這一點。我是否必須在幾天後清潔桌子。 ? – Raaga

1

有兩種方法,我可以想到,要做到這一點。

  1. 您可以存儲他們在cookie中查看過哪些產品。
  2. 您可以將其session_id存儲在數據庫中,然後將所查看的產品存儲在與session_id相關的產品中。

我認爲第二個選項是更好,因爲你可以使用這個數據來創建某種「誰瀏覽過此產品的人也認爲這一個」像亞馬遜有

0

這裏是我會怎麼做它,你創建一個表是這樣的:

CREATE TABLE views(
id bigint not null auto_increment, 
user_id bigint not null, 
product_id bigint not null, 
primary key(id) 
) 

而且每一個用戶瀏覽一個產品的時候,你保存用戶的ID和這裏的產品ID。然後,您可以使用簡單的選擇查詢獲取用戶查看的最新10種產品,以及獲取單個產品的查看次數。

相關問題