[SQL] 고유의 페이지 뷰를 추적하기위한 PHP 세션
SQL고유의 페이지 뷰를 추적하기위한 PHP 세션
나는 고유의 페이지 뷰를 추적하는 세션을 사용하고 싶습니다. 아니 매우 강력한 방법, 알아,하지만 내가하고 싶은 것을하기에 충분.
첫 페이지로드시 세션 변수는 데이터베이스 단위로 설정하고 필드입니다. 증가 세션 변수가 설정되지 않는 조건으로하기 때문에 이후 페이지 뷰에 그것은, 증가하지 않습니다.
이건 내 코드입니다 :
$pagenumber = 1;
//other stuff here...
session_start();
if (!isset($_SESSION[$pagenumber])) {
$storeview = mysqli_query($dbconnect, "UPDATE tblcount SET views=views+1 WHERE id='$pagenumber'");
$_SESSION[$pagenumber] = $pagenumber;
}
echo $_SESSION[$pagenumber];
$Recordset1 = mysqli_query($dbconnect, "SELECT views FROM tblcount WHERE id = '$pagenumber'");
$row_Recordset1 = mysqli_fetch_assoc($Recordset1);
echo "Viewed ".$row_Recordset1['views']." times";
첫 번째 에코 테스트 만이있다. 이 페이지 새로 고침에 잘 값을 에코와 증가는 처음 작동하지만, 뷰 카운트가 모든 페이지 새로 고침에 계속 증가되는 말아야. 나는 이유를 볼 수 없습니다.
나는 비슷한 질문을 발견 : PHP는 : 고유 방문 / 히트 쿠키 / IP를 사용하여 특정 항목하지만 난 솔루션과 유사한 문제로 실행이가 제안했다.
도움에 감사드립니다!
해결법
-
==============================
1.아주 ... 이해할 수 없습니다. 자세한 내용은이 대답을 참조하십시오.
아주 ... 이해할 수 없습니다. 자세한 내용은이 대답을 참조하십시오.
배열 (여기 페이지 번호)와 $ _SESSION 변수 안에 그 배열의 인덱스로 $ 페이지 번호를 추가합니다. 아니 더 이상 알 수 없습니다.
session_start(); $pagenumber = 1; if (!isset($_SESSION['pagenumbers'])) { $_SESSION['pagenumbers'] = array(); } if (!isset($_SESSION['pagenumbers'][$pagenumber])) { updateViews($pagenumber); $_SESSION['pagenumbers'][$pagenumber] = $pagenumber; } echo 'Page number: ' . $_SESSION['pagenumbers'][$pagenumber] . '<br/>'; $views = getViews($pagenumber); echo '<pre>Viewed ' . print_r($views, true) . ' times</pre>';
참고 : 나는 시험에 내 기능을 사용했다. 그들은 당신의 DB-처리 코드를 교체합니다.
-
==============================
2.그냥 테스트. 이것은 또한 작동합니다.
그냥 테스트. 이것은 또한 작동합니다.
으로 session_start ();
페이지의 이름을 가져옵니다 // $ PAGE_URL = $ _SERVER [ 'REQUEST_URI'];
세션 ID를 생성 //. 방문자의 이름으로 역할을합니다 만약 (!는 isset ($ _ SESSION [ 'ID'])) {
$ _SESSION [ 'ID'] = SESSION_ID ();
// 첫 번째 페이지에 방문을 위해 $ visit_id = $ _SESSION [ 'ID'];
}그밖에{
// 모든 페이지에 대한 후속 방문을 $ visit_id = $ _SESSION [ 'ID'];
}
/ ****************** 쿼리 DB. 세션 당 페이지 당 하나의 방문을 삽입합니다. 그것은 우리가 총 방문을 얻기 위해 각각의 페이지 수를 필요 의미합니다. 또는 모든 레코드의 수는 사이트 전체의 방문을 얻을 수 있습니다. ************************************ / $ query_visits_table = mysqli_query ($ db_connect는 "tblcount * FROM WHERE (visit_id = '$ visit_id') AND (PAGE_NAME = '$ PAGE_URL')");
경우 (mysqli_num_rows ($ query_visits_table)> 0) {
// 마 아무것도를이 페이지가이 세션 중에 방문한 된 경우
}그밖에{
mysqli_query ($ db_connect, "INSERT INTO의 tblcount (visit_id, PAGE_NAME, 방문) VALUES ( '$ visit_id', '$ PAGE_URL', '1')");
}
// 가져 오기 사이트의 총 방문 $ query_site_visits = mysqli_query ($ db_connect "SELECT * tblcount FROM");
// 특정 페이지를 참조하십시오 $ query_specific_page_visit = mysqli_query ($ db_connect는 "tblcount * FROM WHERE PAGE_NAME = '$ PAGE_URL'");
만약 (는 isset ($ query_site_visits) &&는 isset ($ query_specific_page_visit)) {
$ site_total_visits = mysqli_num_rows ($ query_site_visits); $ specific_page_visit = mysqli_num_rows의 ($ query_specific_page_visit);
에코 '사이트 총 방문이다'. $의 site_total_visits. '
';에코 '의 총 방문'. $ PAGE_URL. '이다'. specific_page_visit을 $;
출구();
}
from https://stackoverflow.com/questions/43987104/php-session-for-tracking-unique-page-views by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SqlCommand를 INSERT INTO 쿼리가 실행되지 않습니다 (0) | 2020.07.19 |
---|---|
[SQL] 스파크 dataframe 그룹화는 널 (null)을 계산하지 않습니다 (0) | 2020.07.19 |
[SQL] 즉 임의의 숫자를 변환 [중복] (0) | 2020.07.19 |
[SQL] 외래 키 제약 조건의 참조 필드 (들)을 찾기 (0) | 2020.07.19 |
[SQL] 어떻게 동시 액세스에 테이블의 행의 특정 NR를 표시합니다 (0) | 2020.07.19 |