<?=list[1][wr_content]?> 초간단 출력이 안돼요. 왜? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

<?=list[1][wr_content]?> 초간단 출력이 안돼요. 왜? 정보

<?=list[1][wr_content]?> 초간단 출력이 안돼요. 왜?

본문

skin/latest/basic_test/latest.skin.php 라는 파일안에
 
<?=list[0][wr_content]?>

이라고 들어있는 초간단 테스트를 하고 있는데요.
news_tbl 이라는 테이블이름의 게시판에 두개의 테스트 글이 게시되어있구요.

<?=latest("basic_test","news_tbl",1,50)?> 이라고 할때,
news_tbl 에 게시된 두개의 테스트 글중, 최근거는 출력이 됩니다. 

그런데 문제는,
<?=list[1][wr_content]?>
이라고 바꾸어서, 게시판에 오래된 글을 출력시키려고,
<?=latest("basic_test","news_tbl",1,50)?> 이라고 출력시킬려고 하면,
출력이 안되네요.

[0] 에서 [1] 으로 바꾸었을뿐인데 안되네요. 분명히 게시판에 게시된 글도 2개인것도 맞고. 혹시나하고 -1 도 해보는데 안돼고.
제가 뭘 못하고 있는건지요?
  • 복사

댓글 전체

<?=$list[$1][wr_content]?>  이것도 안되는군요.

$i 가 증가되면서
 <?=$list[$i][wr_content]?> 처럼 $i 로 원래 하쟎아요. 그런데 $i 가 0 에서 1 이런식으로 들어가는거니까, 당연히
[$i] 대신
[0] 이나 [1] 을 직접넣어도 되야 할텐데, 그게 안되는군요. 왜그런지 이상하네.  혹시나하고 [$0] 이나 [$1] 도 해봤지만 역시 안돼네여.
Array
(
    [0] => Array
        (
......




요거만 나와요. 즉 게시판글의 가장 최근거만 나와요.


Array
(
    [1] => Array
        (

....

}

요런건 안나오는거지요? 분명히 게시글이 2개인데?
아  원래 테스트에서는 안빼먹고 제대로 했구요. 그런데 안되는거구요.
여기에 급하게 적다보니까 댓글에서 빼먹은거네요 ㅎㅎ 쏘리.

아 원글 질문에서도 빼먹었네요. ㅎㅎ 어쨌건 테스트에서는 제대로 했는데 안되고 있는거에요.
쏘스랄것도 없고요. 원글에서 이야기한 다에요:

skin/latest/basic_test/latest.skin.php 파일안에

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>

<? /*  print_r($list) ; */ ?>
<?=$list[1][wr_content]?>

이거를 다른 파일로 latest("basic_test","news_tbl", 1, 100) 로 부르는 것일뿐이에요.
제가 하려는 스킨에 저런게 기본적으로 들어가야 하기 때문에 저 초간단 스킨을 테스트하는중이라서, 아직 원래 스킨은 테스트할 단계가 못되서요.
latest("basic_test","news_tbl", 1, 100)

의 세번째 인자가 최신글 갯수입니다.

그것을 1로 주신 상태에서 두번째 항목 ( $list[1][..] ) 을 보시려 하면.. 없죠.. ^^;
저도 이게 의심되던 상황이었는데요.
사실은 하나만 봐야 하는데, 최신글 하나가 아니라 그 전글들중 하나(지금은 두개의 게시글중 뒤엣것)를 골라서 봐야 하기때문에 저런 테스트를 한거죠.
결국 latest 함수를 고쳐야 한단 이야기일까요?
함수수정없이 가능합니다.
함수수정시 더 번거롭죠-

배열이 이미 불러져와있으니 마지막 부분만 추려내는 건 어렵지 않을 듯합니다.
array_pop() 사용해보시면 될거 같네요.
"최신글 하나가 아니라 그 전글들중 하나" 가 어떤 하나냐에 따라서
기존 latest 함수를 그대로 사용하실 수 있는지 없는지가 결정될것 같네요..

만일 최신글중 두번째 것을 보시려면,

latest("basic_test","news_tbl", 2, 100)

로 호출하신 후

$list[1][..] 를 사용하심은..
예. 이방법이 맞는거 같네요 ㅎㅎ.
앞으로 이경우에, 3번째 인자를 최대값으로 해서 써야겠네요.

여러분들 감사합니다.

어떤분을 채택해드리지?
최신글 내용은 다음과 같습니다.
$last_list = end($list);
echo $last_list['wr_subject'];

for ($i=0; $i<count($list); $i++) {
    echo "<div>".$list[$i]['wr_subject']."</div>";
}

배열의 마지막을 뽑아와서 먼저 보여주고 최신글을 출력합니다.
사실은
랜덤으로 할지
아니면
시간을 체크해서 시간의 레인지에 따라서 해야할지는 아직 결정하지 않았지만,
게시판글들중,  특정한 게시판의 글 하나만 뽑아서
그냥 내용만을 뽑아서 뿌려주고 싶은겁니다.

그래서 저 원글 테스트의 간단한 테스트가 왜 안되는가 싶어서 급히 질문 올려봤습니다. ㅎㅎ
같이 생각해주셔서 도움이 많이 되었습니다. 어쨌든 latest 함수를 그냥 이용하되, 가능한한 전체 게시판글을 다 불러올수 잇도록 3번째 숫자를 큰 수로 해서 써야 할거 같습니다. 이경우에 게시판의 글이 늘어날수록 나중에는  실행 속도가 아주 느려지게 될지도 모르겠네요....
일종의 Featured 같은 기능이네요. ^^
저도 한번 만들어봤었는데,
latest 함수로는 안되고 함수를 하나 새로 만들었습니다.

다른 부분은 다 똑같고, $options 인자에 검색조건(예: 추천 몇회이상 + 일주일이내) 을 보내t서 where 문에 추가하고,
order by wr_num 대신에 ORDER BY RAND() 으로 사용했었습니다.
© SIRSOFT
현재 페이지 제일 처음으로