테스트 사이트 - 개발 중인 베타 버전입니다

원글 수정시 여분필드에 수정한 사람 이름 남기기 채택완료

모차마 11년 전 조회 3,783

여러 회원님들의 팁을 이용해서 게시판 관리자를 두고 해당 관리자는 관련 그룹의 어떤글이든 수정할 수 있게 만들었습니다. 그런데 여기서 한가지 구현하고 싶은것이 만일 "홍길동" 이라는 사람이 원글을 작성하고, "성춘향" 이라는 사람이 이를 수정했다면 여분필드(wr_10)에 "|" 로 구분을 지어 저장하고 싶습니다.

만일 또 그  이후에 또 누군가가 수정했다면 역시 같은 필드 wr_10 에 추가로 저장이 되는 겁니다.  아래의 그림과 같이요..

  

이렇게 하려는 이유는 원글이 수정되었을때 누구에 의해서 수정되었는지 보여주기 위해서 입니다. 오로지 수정한 사람 이름만 나오면 됩니다. 기왕이면 중복되는 이름은 한번만 저장되면 더 좋을것 같습니다.

 

접속한 회원의 이름을 가지고 write_update.head.skin.php 나 write_update.skin.php 를 가지고 하면 될것 같은데 마지막에 수정한 사람 이름만 덮어쓰기만 하고 차곡차곡 싸여지게 하는 것을 모르겠습니다..ㅡㅜ

도와주십시요..^______^;;  

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
11년 전
write_update.skin.php
if($w=='u' && $member[mb_name]){ 
$readArr=array(); $readArr=explode(",", $write[wr_10]);
if( !in_array($member[mb_name], $readArr)){
  $add_qry= $write[wr_10] ? "concat(wr_10,'|', '$member[mb_name]')" : "'$member[mb_name]'";
  sql_query("update $write_table set wr_10= $add_qry where wr_id='$wr_id'");
}
}
?>

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

모차마
11년 전
균이님 감사합니다.
오류없이 저장이 됩니다. 하지만 최근에 수정한 사람의 이름만 덮어쓰여지네요.. 예를 들면 "홍길동|홍길동" 이런식으로요.. 하지만 제가 원하는 것에 가까이 온듯 합니다..
나머지는 저의 몫이겠죠..^^ 균이님과 잉끼님의 답을 가지고 열심히 원인을 찾아보겠습니다..
다시한번 감사드립니다..^^
균이
11년 전
수정합니다
1. $readArr=explode("|", $write[wr_10]); <---이것으로 바꾸세요 오타입니다
2. write_update.head.skin.php를 만들고 내용
<?
$wr_10 = $write[wr_10];
?>
모차마
11년 전
너무 잘됩니다.. 원하던 그대로 너무 잘됩니다..^^ 진심으로 감사드립니다..^^

댓글을 작성하려면 로그인이 필요합니다.

11년 전

 

update ... set  

... 

wr_10 = ​concat(​wr_10 , if( ​wr_10 ='', '이름', '|이름' ); )  

...

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

모차마
11년 전
죄송합니다..ㅠㅠ 아래와 같은 에러를 뿝네요.. 그리고 아무런 값도 저장이 안되요..
무엇이 문제일까요? write_update.skin.php에 가르쳐 주신 코드를 넣어봤습니다.
update g5_write_do_name set wr_10 = ​concat(wr_10 , if(wr_10 ='', '테스트', '|테스트' ); ) where wr_id = '4'
1064 : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; ) where wr_id = '4'' at line 2
error file : /g5/bbs/write_update.php

전 어찌 차려준 밥상도 못먹네요..^^;; 원인을 찾아보겠습니다.. 다시한번 감사드립니다..^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인