2015-01-25 3 views
2

카운트 뷰 시스템을 만들고 싶습니다. 사이트 카운트 뷰를 위해 하나의 뷰를 가지고 있습니다.하지만 그것은 메인 사이트에 대해 일반적으로, 개별적으로 어떻게 할 지 모르지만,이 것은 없을 것 같습니다. 쉬운! 그래서 나는 새로운 일을해야 않습니다 당신이 내 기존 시스템과 어떤 방식으로 표시됩니다, 그래서이 추적하기 위해 지금까지 그것은 대단한 물론카운트 페이지 뷰가 각각 따로 있습니다.

$guest_ip = $_SERVER['REMOTE_ADDR']; 
 
$visits = mysql_query("INSERT INTO visitors(ip) VALUES('".$guest_ip."')"); 
 
$visitoronsite = mysql_query("SELECT * FROM visitors"); 
 
$onlinevisits = mysql_num_rows($visitoronsite); 
 

 
?> 
 
Visitors: <?PHP echo $onlinevisits; ?>

실행있어와 얼마나 많은가, 그러나 나의 위치가 영상으로이고 각 영상에는 위치가/index.php? id = 8와 저 페이지와 같은 무언가 인 php ID와의 연결이있다, 나가하고 싶은 무엇은 그 페이지에 저것을 말하는 카운터를 두는이다 많은 사람들이이 링크를 사용하여 지켜 보았지만 이미 문제가 있습니다.하지만 약간의 문제가 있습니다. 그래서 2 열 1 개의 ip와 다른 하나의 페이지가있는 pageviews라는 테이블을 만들었습니다. 이제는 내 질문에 대한 답입니다. IP가이 링크를 지켜 왔음을 보여주고 싶기 때문에 유일하게 사용할 수는 없지만 고유 할 것이기 때문에 삽입해야합니다. 그렇기 때문에 그 페이지만으로 하나의 IP를 고유하게 유지하려면 어떻게해야합니까?

+0

** MySQL의 확장 기능은 향후 제공되지 않을 예정이며 앞으로 제거 될 예정입니다. 대신 mysqli 또는 PDO를 사용하십시오 ** – starkeen

답변

2

페이지 뷰 테이블에서 두 개의 열 (ip 및 video 또는 링크 ID)을 기반으로 고유 색인을 만들어야합니다. 이 같은 테이블에 고유을 추가

ALTER TABLE `pageviews` ADD UNIQUE INDEX `ip_video_unique` (`ip`, `video_id`); 

당신은 IP 당 고유의 비디오 뷰를 저장할 수있을 것보다.

페이지에

, 당신은 볼 얼마나 많은 IP를의 수를 얻을 수 같은 쿼리를 수행하여 비디오 :

이 쿼리에서 x는 비디오의 ID입니다
SELECT * FROM `pageviews` WHERE video_id = x 

. site/index.php? id = 8의 경우 8이됩니다.

고유 ID와 각각의 IP 및 페이지 뷰 테이블을 사용하여 방문자를 저장하는 별도의 테이블에서 IP를 분리하는 것이 좋습니다. IP 대신 고유 방문자 ID를 참조하십시오. 나중에이 방법을 사용하면 테이블의 비디오보기 및 다른 테이블의 다른보기를 계산할 수 있지만 방문자 (및 해당 IP)는 단일 테이블에 집계 할 수 있습니다.

+0

고유 인덱스 및 하나 더 저장하는 데 대한 감사합니다 :) – MEX

+0

당신은 환영합니다 :) . –

관련 문제