1

私のページの URL には、id=N、num=N、item=N の 3 つの変数があります。N = 1、100。これらは整数であり、指定された URL の例です。

page.php?id=1&num=24&item=12

重複なしで訪問をカウントしたい。私はそれがうまくいくと思う方法:

Cookie が存在する場合、データベースに新しい値を追加しないでください。そうでない場合は、Cookie を設定し、データベースの値を増やします。

$_COOKIE[''] 配列を使用して、ページが訪問されたかどうかを識別しました。

$_COOKIE['product[id]'] = $_GET['id'];
$_COOKIE['product[num]'] = $_GET['num'];
$_COOKIE['product[item]'] = $_GET['item'];

パスが異なる場合に問題が発生しました:

page.php?id=1&num=24&item=12&page=0#topView

人がページにアクセスするたびにデータベースにクエリを実行することはできません.1000以上のユニークな訪問があるためです.

私の質問は次のとおりです。ページ訪問ごとに固有の mod をカウントするにはどうすればよいですか?

ノート:

page.php?id=1&num=24&item=12

また

page.php?id=1&num=24&item=15

また

page.php?id=2&num=24&item=12

これらのリンクは、変数に応じて、固有の製品情報を提供してくれます。

ありがとうございました!

4

1 に答える 1

0

私のコメントはあなたの問題の解決策であるため、回答として変換しています。

「ユーザーがページにアクセスするたびにデータベースにクエリを実行することはできません。1,000 を超えるユニーク アクセスがあるためです。」- できるとは思えません。私の意見では、そうすべきです。すべてのページ アクセスをカウントし、最終的な結果を取得する場合は、ip、id、num、item でグループ化します。すべてのデータをデータベースに入れると、最も人気のあるページの簡単なビューも得られます. さらに、1 人のユニーク ユーザーがどのページに多くアクセスしているかを確認し、その理由を特定することができます。データは多いほどよい。データベースの大部分は必要ありません。

最終的に決定したアルゴリズムに誤りがあります。ID が 11、num が 5、item が 7 であると想像してください。また、id = 1、num = 15、item = 7 の別のものを想像してください。:P そのように言え

md5($_GET['id'].'-'.$_GET['num'].'-'.$_GET['item']);

とてもユニークです。

于 2012-05-03T16:11:44.557 に答える