0

ページが表示されるたびに、ユーザーのIPとページIDがテーブルに入れられるページビューテーブルがあります。このテーブルでは、IP とページ ID の組み合わせごとに 1 つの行のみが必要です。主キーを ip に設定すると、各 ip は 1 つのページにのみ関連付けることができます。主キーをページ ID に設定すると、各ページに 1 つの IP のみが関連付けられます。

テーブルで繰り返すことができないのは、IP とページ ID の組み合わせであるため、これらの両方をキーにする必要があります。これどうやってするの?

$mysqli->query("INSERT INTO page_views (ip, page_id, view_key) VALUES ('$ip', '$page_id', '$view_key') 
ON DUPLICATE KEY UPDATE page_key='$view_key'");

このようにセットアップを機能させる必要があります。そのため、誰かがページを表示するたびに、view_key が割り当てられ、テーブルに配置されます。そのページを表示しているその IP の記録が既にある場合は、view_key フィールドを上書きする必要があります。

4

3 に答える 3

0

別のオプションは次のとおりです。

INSERT INTOテーブル( user_ip, page_id ) SELECT * FROM (SELECT insert_user_ip , insert_page_id ) AS tmp WHERE NOT EXISTS ( SELECT user_ip, page_id FROMテーブルWHERE user_id = insert_user_id AND page_id = insert_page_id ) LIMIT 1;

于 2013-07-06T18:32:56.667 に答える
0

テーブルに一意のキーを追加する

ALTER TABLE table_name add unique key(ip_address,page_id);
于 2013-07-06T18:41:25.083 に答える