2011-07-06 3 views
3

私は様々な製品を販売するeコマースのウェブサイト(オンラインショッピング)に取り組んでいます。私は、ユーザーが最近閲覧した製品のリストをユーザーに表示したい。これを達成するのを手伝ってもらえますか?「最近アクセスした商品」の機能をeコマースのウェブサイトに追加するにはどうすればよいですか?

私はWindowsサーバー上でPHP、MySQL、Apache HTTPを使用しています。

ありがとうございます!

+0

セッションを使用して、ユーザーのプロダクトIDを保存することができます: 'session_start(); $ _SESSION ['products'] [] = $ current_product_id; ' – kongr45gpen

+0

PHPでセッション変数の使用法を調べる必要があります。あるいは、製品キーのシリアル化された配列とともに、IPをデータベースに格納することもできます。誰かが開発者を雇うことを望むなら、ここにあなたのコードを書く人はいません。私たちがここで何をしているのか、助けを求めてください。 –

答えて

2

データベースまたはCookieを使用できます。このデータベースメソッドは、ユーザーがブラウザのクッキーをクリアした後も持続します:

のようなデータベースの何かにテーブルを作成します。

userid, 
productid, 
viewdate TIMESTAMP DEFAULT CURRENT_TIMESTAMP 

訪問者が商品を閲覧するたびに、あなたは、単に特定のデータベースに行を挿入しますユーザー、製品、および訪問したときのタイムスタンプが含まれます。ユーザーがページをロード

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

次回は、あなたは彼らが見る最新n個製品を取得し、それらを表示します。定期的にスケジュールされたジョブを実行して、期限切れにした日数よりも古いビュー・レコードをクリーンアップすることができます。

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

これは、ユーザーID(つまり、ログインしているユーザー)がわかっている場合にのみ機能します。匿名ユーザーの最近見た製品を入手して、訪問していくつかの製品を検索し、1週間後に店を訪れると、どのように表示することができますか? – Raaga

+0

@RaagaセッションIDまたは何らかの識別子を 'recentviewed'リストに保持する匿名ユーザーのためのクッキーを保存します。 'userid'の代わりに、' recentviewed'テーブルにはそのセッションIDまたはクッキートークンの列があります。 –

+0

大量のレコードを含むテーブルが蓄積されることがあります。これを克服する方法。私は数日後にテーブルをきれいにする必要があるかどうか。 ? – Raaga

1

これを行うには2つの方法があります。

  1. あなたは、彼らがクッキーに閲覧したどの製品保存することができます。
  2. session_idをデータベースに格納し、そこに表示された商品をsession_idに関連付けることができます。

私はあなたが、その後のいくつかの種類作成するには、このデータを使用することができるように、第2のオプションが良いと思いアマゾンのような「も、この製品を見た人は、このいずれかを見る」ここ

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製品を取得したり、単一の製品のビュー数を取得したりすることができます。

関連する問題