묻고답하기
조회했던 게시글이 게시판 목록에서 나타나게 하고 싶습니다.
2010.03.06 23:52
지금 포인트 시스템을 이용해서 게시판을 사용중입니다.
게시글을 조회시 포인트가 소모되고 포인트가 부족할시 게시글을 조회할수 없게 설정되어 있습니다.
게시판을 한번 조회시 DB에 Document_srl(게시글 고유번호 인것 같습니다.) 과 Member_srl(회원 고유번호인것같습니다.)
log가 남게되어 log가 남아있는 아이디들은 다시 보아도 포인트 차감이 없더군요.
이것을 보고 생각난게 게시글 목록중에서 현제 로그인한 아이디의 Member_srl을 로그 목록 테이블에서 검색하여
게시글 목록들 중에 Document_srl이 일치하는것이 있으면 표시(이미지를 불러온다거나 등등) 를 해주면
목록에서 본것과 안본것의 차이가 쉽게 나서 편할것같아서 코드를 짜보았습니다.
<?php
$member="73"; /*로그인한 회원의 고유번호를 가져와야하는데 어떻게 하는지 몰라서 일단 직접 값을 넣었습니다. */
$document="393"; /*게시글의 고유번호를 가져온다 (위와 같은 이유로...) */
$host='호스트이름';
$dbid='DB아이디';
$dbpassword='DB비밀번호';
$conn = mysql_connect("$host","$dbid","$dbpassword")
or die ("접속할 수 없성: " . mysql_error());
$dbname ='DB이름';
$tbname ='xe_document_readed_log'; /* document_reade_log 테이블에 정보가 저장되더군요 저는 XE설치시 DB테이블 이름을 xe라고 적어주어서 'xe_document_readed_log' 라고 뜨더군요*/
/*db정보를 불러온다*/
mysql_select_db("$dbname",$conn) or die ("데이터 베이스를 선택 할 수 없성.");
mysql_query("set names utf8", $conn); //문자인코딩utf-8
$query = "select count(document_srl) from `".$tbname."` where `member_srl` = '".$member."' and `document_srl`='".$document."' ";
/*로그인한 회원의 고유번호를 log에서 해당 개시글의 고유번호와 함께 기록되어있는지 조사 0이면 ㅇ벗음 1이면 있음*/
$result = mysql_query($query,$conn); /*po실행wer*/
$row=mysql_fetch_array($result);
if($row[0] >= 1){echo "<img src="\"불러올 이미지 주소\" />"; } /* 값이1이상(일치하는것이 있을때) 이미지 출력 */
else{echo " "; } /* 그이외의 상황때는 빈칸 (혹은 다른이미지) 출력 */
mysql_free_result($result);
mysql_close($result)
?>
직접 제 DB에 테스트 해본결과 작동은 잘됩니다...
그런데 XE에 적용시키려고 하니 XE에서는 php나 Javascript 를 조금씩 바꿔서 쓴다고 들었습니다...
php나 Javascript역시 아직 초보자 수준이라.. 잘 다루지는 못합니다.
비슷하게 최근에 읽었던 게시물들을 글 하단부분에 표현시켜주는 에드온을 알려주시길래 안을 보았더니 역시나 잘 모르겠습니다.ㅠㅠ
혹시 이런 기능이 구현된 것이 있다면 알려주시거나, XE에서는 무엇이 바뀌는지 알려주실수 있습니까..?
몇일째 이문제로 골머리를 썩히고 있는것 같습니다.ㅠㅠ
php나 Javascript를 잘 하지는 못하지만 한번 만들어 보고싶습니다...
긴글 읽어주셔서 감사합니다.
좋은 하루 되세요~