재질문입니다. 이거 원래 안되나요? 간단한거요.

재질문입니다. 이거 원래 안되나요? 간단한거요.

QA

재질문입니다. 이거 원래 안되나요? 간단한거요.

본문

아래는 코드입니다.

--------------------------------------------> 달력 코드 --------

<?php
            $cday = 1;
            $sel_mon[i] = sprintf("%02d", $mon);
            $query = "select * from ".$g5['write_prefix'].$bo_table." where left(wr_1,6) <= '".$year.$sel_mon[i]."'  and left(wr_2,6) >= '".$year.$sel_mon[i]."'  order by wr_id asc";
            $result = sql_query($query);
            
            // 쿼리결과 내용이 있을경우 비교값($html_day)와 제목($title) 배열 설정
            while ($row = sql_fetch_array($result)) {  // 제목글 뽑아서 링크 문자열 만들기..
                if( substr($row[wr_1],0,6) < $year.$sel_mon[i] ) { //검색된 자료중 wr_1 필드의 값과 현재날짜 값 비교
                    $start_day[i] =1; 
                    $start_day[i]= (int)$start_day[i];
                } else {
                    $start_day[i] = substr($row[wr_1],6,2);
                    $start_day[i]= (int)$start_day[i];
                }
            
                if( substr($row[wr_2],0,6) > $year.$sel_mon[i] ) { //검색된 자료중 wr_2 필드의 값과 현재날짜 값 비교
                    $end_day[i] = $lastday[ $mon]; //끝나는 날짜 가져오기 line 59
                    $end_day[i]= (int)$end_day[i];
                } else {
                    $end_day[i] = substr($row[wr_2],6,2);
                    $end_day[i]= (int)$end_day[i];
                }
            
                for ($i = $start_day[i] ; $i <= $end_day[i];  $i++) {
                    $html_day[$i] = "1"; 
                    $title[$i][] = $row['wr_subject']; // 제목글 삽입
                    $wr_id[$i]= $row['wr_id']; // 제목글 삽입
                }
            }        

------------------------------------------------

여기서 이부분 ---> 

 $title[$i][] = $row['wr_subject']; // 제목글 삽입
 $wr_id[$i]= $row['wr_id']; // 제목글 삽입

 

여기 부분에 글쓴이가 입력한 글을 가져 올 수 있는지요??

 

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 6

도움 될련지 몰르겠지만..;;;먼저 배열을 초기화 한다고 하면.
$author = array();

while ($row = sql_fetch_array($result)) {

    여기에 기존 코드입력하시구요    

    for ($i = $start_day[$i]; $i <= $end_day[$i]; $i++) {
        $html_day[$i] = "1";
        $title[$i][] = $row['wr_subject'];
        $author[$i][] = $row['글쓴이_필드_이름'];
    }
}
이런식으로 배열에 저장합니다.

그리고 글쓴이정보를 호출 하고자 하는곳에다 한다면?

for ($i = 1; $i <= $lastday[$mon]; $i++) {
    if (isset($author[$i])) {
        echo "날짜: {$year}-{$mon}-{$i} / 글쓴이: {$author[$i][0]}<br>";
    }
}

이런식으로 출력하면됩니다 화이팅~!

스케쥴보드는 이상하게도 적용이 안되네요. 일반보드스킨은 잘됩니다.ㅎㅎ
https://wedgo1.cafe24.com/POTAL/bbs/board.php?bo_table=test08
https://wedgo1.cafe24.com/POTAL/bbs/board.php?bo_table=test088
아이디 : 비번 : test / test
이거 한번 봐주실래요?
이런형태라서요.

기존 내용에서 가지고 오는것은 문제가 없어요. 하지만 a가 쓴글만 보이게 하려는데요. 글쓴이 bcd..모두 보이는게 문제라서요. a만 보이게 하려고 합니다.^^ 스케쥴 게시판 스킨도 모두 보이고 .. 게시판 위젯 미니달력에서도 모두보이는게 문제구요..ㅎㅎ

네. 맞습니다. 공용은 그냥 사용하면 되는데  개인들 자기것만 보고 사용하게 하려고 합니다. 참고로 위젯과 스케쥴 자체가 연동이 된것같네요. 그리고 스케쥴에서도 자기글만 보게되면 위젯도 마찬가지로 될듯하구요. 일반 게시판은 자기글만 보는게 가능한데요. 스케쥴만 안되네요..ㅎㅎ 그리고 그누보드에는 없는 내용인듯합니다.

그렇다면 은 현재 코드에서 $wr_id[$i] 변수에는 게시물의 wr_id가 저장되고 있고 wr_id는 게시물을 식별하는 고유한 번호로, 이 값은 회원 아이디와는 무관 하다는 이야기죠.
만약
개인적인 스케줄을 나만 볼 수 있도록 하려면 각 회원 별로 개별적인 식별 번호가 필요하고,
추가적인 컬럼 을 사용하여 개인 회원들의 스케줄을 구분할 수 있죠.
 
예를 들어
member_id member_id

또는
개별적인 테이블을 만들어서 회원 별로 스케줄 데이터를 저장할 수도 있습니다.
 
이렇게 하면 각 회원 별로 별도의 테이블이 생성되며, 각 회원은 자신의 테이블에서 스케줄 데이터를 가져와서 사용할 있도록 한다는 이야기죠..

자그렇다면 현재 주펀님이.
참고로 위젯과 스케쥴 자체가 연동이 된것같네요. 그리고 스케쥴에서도 자기글만 보게되면 위젯도 마찬가지로 될듯하구요. 일반 게시판은 자기글만 보는게 가능한데요. 스케쥴만 안되네요 이렇게 말씀하셔는데요 ...
그렇면 현제 구현된 소스를 보면 되지 않을까 합니다. 여기서 개인적인 식별번호를 어떤식으로 추가적인 컬럼을 사용하는지를 보면 답이 나올것 같습니다.

주퍼님권한 문제가 맞는듯요 현재 test 아이디 권한이 1이더라구요, 1에서는 식별변호를 부여할수 없기때문에 잠시 쿠키에 저장한다면몰르까 그외 레벨 1에서는 카렌더 작성시 모두 보이게 되어있어요
그래서 비밀번호로 처리를 하는경우가 많죠 1레벨은 비회원이나 맞찮가지닌깐욤 물론 레벨이 높다고 해도 카렌더 자체에서 레벨  식별번호를 서버쪽에서 없애버릴수도 있지만 그건 아닌것 같습니다.

카렌더 이용레벨을 2로 설정해 보면 답이 나올것 같네요.

네. 원래 회원2레벨부터 로그인후 테스트 해도 안되었는데요. 한번 봐주셨으면 해서 임시로 test로 해둔겁니다. test2 / test2 회원 만들어두었습니다. 2레벨만 글 사용하게요. 제가 발코딩 초보라.. 배우는중입니다. 요것만 좀 해결되면 도움이 될듯 합니다. 원래 안되는것은 아닌듯한데요. ㅎㅎ

[i] 는 어떤 의미죠??

[i] 를 삭제하고 그냥 변수로 하면 될 것 같습니다.

$start_day[i] => $start_day

 

$row['wr_subject'] 는 글제목 맞구요

$row['wr_id'] 는 글번호 입니다.

                for ($i = $start_day[i] ; $i <= $end_day[i];  $i++) {
                    $html_day[$i] = "1"; 
                    $title[$i][] = $row['wr_subject']; // 제목글 삽입
                    $wr_id[$i]= $row['wr_id']; // 제목글 삽입
                }

이 소스데로라면 시작일부터 종료일까지 동일한 $row['wr_subject']가 들어갑니다.

이게 맞으신건가요?

정확한 용도를 알려주셔야 할듯 합니다. ^^;;

네. 답변 감사합니다.  작동방식은 아미나 보드를 사용하고 있습니다. 그리고 스케쥴에 홍길동이 작성한 내용을 위젯으로 스케쥴을 가져옵니다.  가져온 스케쥴에 홍길동이 작성한 제목이 보여지구요.
아래는 관련 링크입니다.
https://amina.co.kr/bbs/board.php?bo_table=skin_member&wr_id=6137#c_15604

그리고 위젯의 데이터 관련 소스는 아래입니다.
---------------------------------------------------------------------------------
<?php
if (!defined('_GNUBOARD_')) exit; //개별 페이지 접근 불가

global $g5;

$wid = $grid;

global $member;


$bo_table = $wset['bo_table'];

//$bo_table = 'event'; // 강제로 추가

$tcolor = (isset($wset['color']) && $wset['color']) ? $wset['color'] : 'orangered';

// Today
$today = getdate();
$year = $today['year'];
$mon = $today['mon'];
$day = $today['mday'];

$qstr2 = '&amp;year='.urlencode($year).'&amp;month='.urlencode($mon);

$chk_today = $year.sprintf("%02d",$mon).sprintf("%02d",$day);

$sql_ca = ($wset['ca_name']) ? "and find_in_set(ca_name, '{$wset['ca_name']}')" : "";

$tmp_write_table = $g5['write_prefix'] . $bo_table;
$result = sql_query("select * from $tmp_write_table where wr_is_comment = '0' and left(wr_1,8) <= '{$chk_today}' and left(wr_2,8) >= '{$chk_today}' $sql_ca order by wr_id asc", false);

$date_arrow_url = $widget_url.'/img/date_arrow.gif';
$date_dot_url = $widget_url.'/img/dot_09.png';

?>

<style type="text/css">
p.title    {font-size: 14px; font-weight:bold}
img {border:0}
.ymd{margin-top:15px;}
.ymd a{color : #333!important;font-size : 16px; padding: -10px;}
.ymd a:hover{color : #ff0000!important;}
.ymd ul{width : 100%;}
.ymd ul li{float : left; list-style-type:none; padding:0% 0.9%;}
.ymd ul li.sunday    {text-align: center; font-size: 14px; color: #FF0000;}
.ymd ul li.sunday a  {color: #FF0000!important;}
.ymd ul li.saturday  {text-align: center; font-size: 14px; color: #3366CC;}
.ymd ul li.saturday a  {color: #3366CC!important;}
.ymd ul li.weekday  {text-align: center; font-size: 12px;}
.ymd ul li a{background:url('<?php echo $date_dot_url; ?>') left 13px no-repeat; font-size: 12px;height : 100%; padding:18px 0px;}
.ymd ul li div.txt_box{position:absolute; margin-left : -65px; margin-top:-5px; text-align : center; display : none; width : 140px;z-index:10;}
.ymd ul li div.txt_box p{text-align : center;background:#d71920; padding: 5px 0px; color : #fff;margin-top:-7px;}
.ymd ul li div.txt_box ul.txt_ul_box{float : left; text-align : left; padding : 10px; background:#fff;margin-top:-10px;}
.ymd ul li div.txt_box ul.txt_ul_box li{width : 100%;display:block;padding : 0px;}
.ymd ul li div.txt_box ul.txt_ul_box li a{float : left; padding : 0px;color :#333!important;background:#fff;}
</style>

<script>
function openDate(DateName) {
var i;
var x = document.getElementsByClassName("Date");
for (i = 0; i < x.length; i++) {
  x[i].style.display = "none"; 
}
document.getElementById(DateName).style.display = "block"; 
}
</script>


<?php
//달력 변경시 년, 월 불러오기.
if ($_GET["year"]) {
$year = $_GET["year"];
}
if ($_GET["month"]) {
$mon = $_GET["month"];
}

$lastday=array(0,31,28,31,30,31,30,31,31,30,31,30,31); // 월별 끝나는 날짜 설정.
if ($year%4 == 0) $lastday[2] = 29;  // 2월 끝나는 날짜 설정

$dayoftheweek = date("w", mktime (0,0,0, $mon,1,$year));
?>
<!-- 달력 뿌리기 -->
<div class="ymd">
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12" style="margin-right: -10px; padding-bottom: 15px;"><!-- 월단위 선택 -->
<a href="<?php echo G5_BBS_URL; ?>/board.php?bo_table=<?php echo $bo_table; ?>" style="color:#FFFFFF;" onfocus="this.blur()" title="일정관리 바로가기"><b><?php echo $year; ?>. <?php echo  $mon; ?></b></a>
</div>
<div class="col-xs-12 col-sm-12 col-md-12" style=" ">
<ul style="margin-left: -10px; text-align: center;">
<?php
            $cday = 1;
            $sel_mon[i] = sprintf("%02d", $mon);
            $query = "select * from ".$g5['write_prefix'].$bo_table." where left(wr_1,6) <= '".$year.$sel_mon[i]."'  and left(wr_2,6) >= '".$year.$sel_mon[i]."'  order by wr_id asc";
            $result = sql_query($query);
           
            // 쿼리결과 내용이 있을경우 비교값($html_day)와 제목($title) 배열 설정
            while ($row = sql_fetch_array($result)) {  // 제목글 뽑아서 링크 문자열 만들기..
                if( substr($row[wr_1],0,6) < $year.$sel_mon[i] ) { //검색된 자료중 wr_1 필드의 값과 현재날짜 값 비교
                    $start_day[i] =1;
                    $start_day[i]= (int)$start_day[i];
                } else {
                    $start_day[i] = substr($row[wr_1],6,2);
                    $start_day[i]= (int)$start_day[i];
                }
           
                if( substr($row[wr_2],0,6) > $year.$sel_mon[i] ) { //검색된 자료중 wr_2 필드의 값과 현재날짜 값 비교
                    $end_day[i] = $lastday[ $mon]; //끝나는 날짜 가져오기 line 59
                    $end_day[i]= (int)$end_day[i];
                } else {
                    $end_day[i] = substr($row[wr_2],6,2);
                    $end_day[i]= (int)$end_day[i];
                }
           
                for ($i = $start_day[i] ; $i <= $end_day[i];  $i++) {
                    $h
--------------------------------------------------------------------------

원인을 대략 알듯은 한데요. 코드를 모르겠습니다.
기본 스케쥴 스킨 자체도 내글만 뽑아내는게 안되서 지금 이 위젯자체도 안되는듯합니다.
일반 보드스킨은 문제가 없구요. 스케쥴 자체 노출되는게 모든데이터가 노출되리라고 보네요! 이부분을 바꾸면될듯하구요. 어떻게 해야 될런지요?

      $query = "select * from ".$g5['write_prefix'].$bo_table." where left(wr_1,6) <= '".$year.$sel_mon[i]."' and left(wr_2,6) >= '".$year.$sel_mon[i]."'

-- 추가

and mb_id='{$member['mb_id']}'

order by wr_id asc";

 

그리고 wr_1,2가 인덱스에 사용한다면

left(wr_1,6) <=..

이런 비교는 지양해야합니다

엑스엠엘 님 안녕하세요. 답변 감사합니다. ^^ 서브 A일반 "게시판"+"미니달력 최신글 위젯"에 적용하고 있습니다.

달력 B게시판에 날짜선택 후 홍길동이 게시글 올리면 서브 A게시판 위쪽으로 미니달력 홍길동 글이 노출되는 형태 이구요. 홍길동이 로그인하면 홍길동 글만 보여줘야되는데.. 달력은 잘 안되네요.
아래는 게시판 주소입니다.

게시판 A
https://wedgo1.cafe24.com/POTAL/bbs/board.php?bo_table=test08

게시판 B달력
https://wedgo1.cafe24.com/POTAL/bbs/board.php?bo_table=test088

mb_id='{$member['mb_id']}'<-- 를 추가하면 이상하게도 스케쥴 내용이 안보입니다. 몇번 유사하게 해봐도 안보이게되요.  문제는 희안하게도 달력원본 스킨에서도 내글만 출력이 안되네요. 일반 스키들은 모두 보여지는데요.  달력만 안되는것인지.. 아이고..

$title[$i][] = $row['wr_subject']; // 제목글 삽입

 

==

원래 소스는 무엇이었나요?

출력하는 부분 소스를 봐야 정확한 변수 값 지정이 가능하셌네요

원래의 소스는 아래 링크를 사용하고 있습니다.

https://amina.co.kr/bbs/board.php?bo_table=skin_member&wr_id=6137#c_15604

소스내용은 :
https://wedgo1.cafe24.com/POTAL/bbs/board.php?bo_table=test08

위에 자료 올려두었습니다.
아이디 비번은 쪽지로 보낼게요.

자자 정리하자면 주퍼님은 현제 소스에 문제 가있는것보다는 권한에 집중해야하지 않을까 생각합니다.

현제 test  test2  방문페이지를 로그인후 테스트 해본결과 등급은 2 되었있으면서도

일정 페이지이던, 스케줄페이지이던 내가 봤을때는 둘다 모두 보이는 걸로 판단 되었습니다.

결론은 둘다  개인별 식별을 못하고 있다는거죠. 

내말이 맞나요?. 

네. 안녕하세요. ㅎㅎ
아이디 권한인가요?? 그런듯하구요 ..
홍길동이와 홍길순이 글을 각각 작성했을때에요..
제가 홍길동으로 로그인하면 제글만 보이면 됩니다.
요게 핵심입니다.ㅎㅎ
그런데 제가 로그인하면 홍길동 홍길순 아무나 글모두 보인다는 점이죠^^
그래서 내글만 보기로 검색해도 답이  안나오네요. 아이구..

방금전에 코드 적용해봐도 변한것이 없습니다. ㅎㅎ 제가 코드 원본을 올려놓겠습니다. 아미나 보드라서 그누하고 차이점이 있습니다. 그누보드에 있는것을 아미나 보드에 적용을 많이 해본결과.. 다른부분도 많지만 단지 데어터 가져오는코드는 같은것 같구요.

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

회원로그인

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