접속현황에 아이디 추가요... 정보
접속현황에 아이디 추가요...본문
균이님께서... 아래와 같이 알려주셨는데...visit_id가 쌓이지 않아요...
쿼리중 어디가 문제인지 모르겠어요...
------------------------------------------------------------------------------------------
DB에서 visit_id 필드 추가후
visit_insert.inc.php 파일에서 위의 인서트, 업데이트를 추가해봤어요....
------------------------------------------------------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 컴퓨터의 아이피와 쿠키에 저장된 아이피가 다르다면 테이블에 반영함
if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR']) {
set_cookie('ck_visit_ip', $_SERVER['REMOTE_ADDR'], 86400); // 하루동안 저장
$tmp_row = sql_fetch(" select max(vi_id) as max_vi_id from $g4[visit_table] ");
$vi_id = $tmp_row[max_vi_id] + 1;
//2012-06-26 인서트부분
$sql = " insert $g4[visit_table] ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent, visit_id ) values ( '$vi_id', '$_SERVER[REMOTE_ADDR]', '$g4[time_ymd]', '$g4[time_his]', '$_SERVER[HTTP_REFERER]', '$_SERVER[HTTP_USER_AGENT]', '$member[mb_id]' ) ";
$result = sql_query($sql, FALSE);
// 정상으로 INSERT 되었다면 방문자 합계에 반영
if ($result) {
$sql = " insert $g4[visit_sum_table] ( vs_count, vs_date) values ( 1, '$g4[time_ymd]' ) ";
$result = sql_query($sql, FALSE);
// DUPLICATE 오류가 발생한다면 이미 날짜별 행이 생성되었으므로 UPDATE 실행
if (!$result) {
$sql = " update $g4[visit_sum_table] set vs_count = vs_count + 1 where vs_date = '$g4[time_ymd]' ";
$result = sql_query($sql);
}
//2012-06-26 업데이트부분
else if ($member[mb_id] && get_cookie('ck_visit_id') != $member[mb_id]) {
set_cookie('ck_visit_id', $member[mb_id], 86400);
sql_query(" update $g4[visit_table] set visit_id='$member[mb_id]' where vi_ip='$_SERVER[REMOTE_ADDR]' and vi_date='$g4[time_ymd]' ");
}
// INSERT, UPDATE 된건이 있다면 기본환경설정 테이블에 저장
// 방문객 접속시마다 따로 쿼리를 하지 않기 위함 (엄청난 쿼리를 줄임 ^^)
// 오늘
$sql = " select vs_count as cnt from $g4[visit_sum_table] where vs_date = '$g4[time_ymd]' ";
$row = sql_fetch($sql);
$vi_today = $row[cnt];
// 어제
$sql = " select vs_count as cnt from $g4[visit_sum_table] where vs_date = DATE_SUB('$g4[time_ymd]', INTERVAL 1 DAY) ";
$row = sql_fetch($sql);
$vi_yesterday = $row[cnt];
// 최대
$sql = " select max(vs_count) as cnt from $g4[visit_sum_table] ";
$row = sql_fetch($sql);
$vi_max = $row[cnt];
// 전체
//$sql = " select count(*) as cnt from $g4[visit_table] ";
$sql = " select sum(vs_count) as total from $g4[visit_sum_table] ";
$row = sql_fetch($sql);
$vi_sum = $row[total];
$visit = "오늘:$vi_today,어제:$vi_yesterday,최대:$vi_max,전체:$vi_sum";
// 기본설정 테이블에 방문자수를 기록한 후
// 방문자수 테이블을 읽지 않고 출력한다.
// 쿼리의 수를 상당부분 줄임
sql_query(" update $g4[config_table] set cf_visit = '$visit' ");
}
}
?>
쿼리중 어디가 문제인지 모르겠어요...
------------------------------------------------------------------------------------------
DB에서 visit_id 필드 추가후
visit_insert.inc.php 파일에서 위의 인서트, 업데이트를 추가해봤어요....
------------------------------------------------------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 컴퓨터의 아이피와 쿠키에 저장된 아이피가 다르다면 테이블에 반영함
if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR']) {
set_cookie('ck_visit_ip', $_SERVER['REMOTE_ADDR'], 86400); // 하루동안 저장
$tmp_row = sql_fetch(" select max(vi_id) as max_vi_id from $g4[visit_table] ");
$vi_id = $tmp_row[max_vi_id] + 1;
//2012-06-26 인서트부분
$sql = " insert $g4[visit_table] ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent, visit_id ) values ( '$vi_id', '$_SERVER[REMOTE_ADDR]', '$g4[time_ymd]', '$g4[time_his]', '$_SERVER[HTTP_REFERER]', '$_SERVER[HTTP_USER_AGENT]', '$member[mb_id]' ) ";
$result = sql_query($sql, FALSE);
// 정상으로 INSERT 되었다면 방문자 합계에 반영
if ($result) {
$sql = " insert $g4[visit_sum_table] ( vs_count, vs_date) values ( 1, '$g4[time_ymd]' ) ";
$result = sql_query($sql, FALSE);
// DUPLICATE 오류가 발생한다면 이미 날짜별 행이 생성되었으므로 UPDATE 실행
if (!$result) {
$sql = " update $g4[visit_sum_table] set vs_count = vs_count + 1 where vs_date = '$g4[time_ymd]' ";
$result = sql_query($sql);
}
//2012-06-26 업데이트부분
else if ($member[mb_id] && get_cookie('ck_visit_id') != $member[mb_id]) {
set_cookie('ck_visit_id', $member[mb_id], 86400);
sql_query(" update $g4[visit_table] set visit_id='$member[mb_id]' where vi_ip='$_SERVER[REMOTE_ADDR]' and vi_date='$g4[time_ymd]' ");
}
// INSERT, UPDATE 된건이 있다면 기본환경설정 테이블에 저장
// 방문객 접속시마다 따로 쿼리를 하지 않기 위함 (엄청난 쿼리를 줄임 ^^)
// 오늘
$sql = " select vs_count as cnt from $g4[visit_sum_table] where vs_date = '$g4[time_ymd]' ";
$row = sql_fetch($sql);
$vi_today = $row[cnt];
// 어제
$sql = " select vs_count as cnt from $g4[visit_sum_table] where vs_date = DATE_SUB('$g4[time_ymd]', INTERVAL 1 DAY) ";
$row = sql_fetch($sql);
$vi_yesterday = $row[cnt];
// 최대
$sql = " select max(vs_count) as cnt from $g4[visit_sum_table] ";
$row = sql_fetch($sql);
$vi_max = $row[cnt];
// 전체
//$sql = " select count(*) as cnt from $g4[visit_table] ";
$sql = " select sum(vs_count) as total from $g4[visit_sum_table] ";
$row = sql_fetch($sql);
$vi_sum = $row[total];
$visit = "오늘:$vi_today,어제:$vi_yesterday,최대:$vi_max,전체:$vi_sum";
// 기본설정 테이블에 방문자수를 기록한 후
// 방문자수 테이블을 읽지 않고 출력한다.
// 쿼리의 수를 상당부분 줄임
sql_query(" update $g4[config_table] set cf_visit = '$visit' ");
}
}
?>
댓글 전체
맨 마지막에 넣으라고 했는데 중간에다 떡하니 넣었군요
그러네요...z
if문 뒤에 넣는다는 생각만해서요..ㅋ
감사합니다..
DB에 visit_id 값이 쌓이네요...
if문 뒤에 넣는다는 생각만해서요..ㅋ
감사합니다..
DB에 visit_id 값이 쌓이네요...