1

データベースにページビューを保存するためにこのコードを作成しましたが、今すぐ行を更新するのに問題があります...

セッションとURLが更新行ビューと同じかどうかを確認する必要があります。ここにコードがあります

$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$browser = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']);
$referer = mysql_real_escape_string($_SERVER['HTTP_REFERER']);
$url = mysql_real_escape_string($_SERVER['REQUEST_URI']);
$session = session_id();


mysql_query("   INSERT INTO page_view(ip,url,referer,session,view) 
                    VALUES (
                    '".$ip."',
                    '".$url."',
                    '".$referer."',
                    '".$session."',
                    '1')
                    ");
4

3 に答える 3

1

ペアをurl,session一意にしてON DUPLICATE KEY句を使用する

mysql_query("INSERT INTO page_view(ip,url,referer,session,view) 
                VALUES (
                '".$ip."',
                '".$url."',
                '".$referer."',
                '".$session."',
                '1')
             ON DUPLICATE KEY UPDATE view = view +1
                ");
于 2012-04-11T11:29:09.800 に答える
0

列 ip、url、session に一意のインデックスを作成してから、重複キーに対して挿入を行います。

INSERT INTO page_view(ip,url,referer,session,view)
VALUES ('".$ip."','".$url."','".referer."','".$session."','1')
ON DUPLICATE KEY UPDATE view = view + '1'");
于 2012-04-11T11:32:19.027 に答える
0

そのセッションの最後の挿入を照会し、URL が変更されたかどうかを確認します。

If (changed) update;
Else insert;
于 2012-04-11T11:27:50.170 に答える