클릭시 php(쿼리문) 불러오기.

클릭시 php(쿼리문) 불러오기.

QA

클릭시 php(쿼리문) 불러오기.

본문


<?php
$sql = "
  select a.mb_id, b.as_photo, b.mb_nick, b.mb_email, b.mb_homepage, b.as_level
    from g5_point a left join g5_member b on (a.mb_id = b.mb_id)
   where a.po_rel_table = '{$bo_table}'
     and a.po_rel_id = '{$wr_id}'
     and a.po_rel_action = '열람'
   order by a.po_datetime desc
";
$result = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($result); $i++) {
  
                    echo apms_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage'], $row['as_level']);
}
    
    ?>

 

해당 소스는 point 테이블에서 열람한 회원 목록을 뽑아주는 쿼리인데요.

게시판 뷰 페이지 마다 들어가니 딜레이가 너무 심하게 걸려 새창으로 불러들이고 싶습니다.

문제는 저 소스대로 불러들이려니 빈 페이지로만 나오네요. 

짧은 생각으로는 게시판 뷰아 가인 따로 페이지로 불러들이다 보니 필요한 정보가 부족한게 아닌가 싶어서

 

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 
include_once('../common.php');
global $view, $wr_id, $bo_table;

 

이런식으로도 넣어봤는데... 새창으로 불러와도 반응이 없습니다.

어떻게 해야 하는 걸까요

이 질문에 댓글 쓰기 :

답변 5

열람한 회원목록을 보는데 

왜 포인트 전체를 걸죠?

 

문제의 접근방법이 잘못된것으로 보여집니다.

 

다시말해서

 

회원중, 포인트의 '열람'을 한 회원 목록

이라면

 

포인트를 열람한 작동을 할때, 회원정보에 표기를 하던지

 

포인트가 중심이 아니라.

회원중에 열람이 존재하는 회원을 체크하던지

하면되는거죠

두번째방법의 경우


select b.mb_id, b.as_photo, b.mb_nick, b.mb_email, b.mb_homepage, b.as_level
from g5_member b
where exists (select 'x' from g5_point a
                     where a.mb_id = b.mb_id
                          and a.po_rel_table = '{$bo_table}' 
                          and a.po_rel_id = '{$wr_id}' 
                         and a.po_rel_action = '열람'
                     )

으로 접근하는겁니다.

 

point별로 열람한 리스트가 역순으로 조회가 되어야하면

상세보기로 풀어가는게 좋죠

 

 

 

와... 말씀대로 수정해보니 속도가 3배는 빨라진 것 같습니다 ㅠㅠ 너무 감사드립니다!
저기 정말 죄송한데, 혹시 총 몇 명이 열람했는가 값을 뽑아내려면 어떤 식으로 뽑으면 될까요?

새창에서 mysql 접근하려면 common.php 가 로드되어야 합니다.

g5_point 테이블 인덱스를 보니

> show index from g5_point;
+-------------+------------+----------+--------------+----------------+
| Table       | Non_unique | Key_name | Seq_in_index | Column_name    |
+-------------+------------+----------+--------------+----------------+
| g5575_point |          0 | PRIMARY  |            1 | po_id          | 
| g5575_point |          1 | index1   |            1 | mb_id          | 
| g5575_point |          1 | index1   |            2 | po_rel_table   | 
| g5575_point |          1 | index1   |            3 | po_rel_id      | 
| g5575_point |          1 | index1   |            4 | po_rel_action  | 
| g5575_point |          1 | index2   |            1 | po_expire_date | 
+-------------+------------+----------+--------------+----------------+
6 rows in set (0.00 sec)

 

게시판(bo_table)과 wr_id, mb_id로 된 인덱스 하나 더 추가하는 것도 방법입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,120 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT