私は様々な製品を販売するeコマースのウェブサイト(オンラインショッピング)に取り組んでいます。私は、ユーザーが最近閲覧した製品のリストをユーザーに表示したい。これを達成するのを手伝ってもらえますか?「最近アクセスした商品」の機能をeコマースのウェブサイトに追加するにはどうすればよいですか?
私はWindowsサーバー上でPHP、MySQL、Apache HTTPを使用しています。
ありがとうございます!
私は様々な製品を販売するeコマースのウェブサイト(オンラインショッピング)に取り組んでいます。私は、ユーザーが最近閲覧した製品のリストをユーザーに表示したい。これを達成するのを手伝ってもらえますか?「最近アクセスした商品」の機能をeコマースのウェブサイトに追加するにはどうすればよいですか?
私はWindowsサーバー上でPHP、MySQL、Apache HTTPを使用しています。
ありがとうございます!
データベースまたは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);
これは、ユーザーID(つまり、ログインしているユーザー)がわかっている場合にのみ機能します。匿名ユーザーの最近見た製品を入手して、訪問していくつかの製品を検索し、1週間後に店を訪れると、どのように表示することができますか? – Raaga
@RaagaセッションIDまたは何らかの識別子を 'recentviewed'リストに保持する匿名ユーザーのためのクッキーを保存します。 'userid'の代わりに、' recentviewed'テーブルにはそのセッションIDまたはクッキートークンの列があります。 –
大量のレコードを含むテーブルが蓄積されることがあります。これを克服する方法。私は数日後にテーブルをきれいにする必要があるかどうか。 ? – Raaga
これを行うには2つの方法があります。
私はあなたが、その後のいくつかの種類作成するには、このデータを使用することができるように、第2のオプションが良いと思いアマゾンのような「も、この製品を見た人は、このいずれかを見る」ここ
を持って、私がどうなるかであります
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製品を取得したり、単一の製品のビュー数を取得したりすることができます。
セッションを使用して、ユーザーのプロダクトIDを保存することができます: 'session_start(); $ _SESSION ['products'] [] = $ current_product_id; ' – kongr45gpen
PHPでセッション変数の使用法を調べる必要があります。あるいは、製品キーのシリアル化された配列とともに、IPをデータベースに格納することもできます。誰かが開発者を雇うことを望むなら、ここにあなたのコードを書く人はいません。私たちがここで何をしているのか、助けを求めてください。 –