답변 2개
head.sub.php 파일뿐만아니라 기타 다른 파일에서도
게시물의 카테고리를 출력하는방법에서 체크해야할사항은
wr_id 값이 있느냐 없느냐 입니다.
왜냐면
bo_table만 존재하면 list에 해당되고
list에는 page별로 여러행이 존재합니다.
그러면 각 행에 존재하는 ca_name은 복수개가 되서 뭐가 기준이다 할수없기때문이죠
그러면 질문하신 내용대로 ca_name의 값이 단일개가 되려면
wr_id 값이 존재하는 게시물만 가능하게 되는데
bo_table 과 wr_id 둘다 존재하는지를 먼저 확인하시고
그런다음에 또 중요한것은
url이 어떻게 되느냐인데
http://domain.com/bbs/view.php?bo_table=free&wr_id=1
과 같은 구조라면
g5_write_free 테이블에
wr_id = 1 인 레코드에 해당되는 ca_name 을 가져오게 됩니다.
이건 _common.php 를 include하고 있기때문에 당연히
head.sub.php 뿐만아니라
view.php 안에서 포함된 모든파일에서 공통적으로 접근이 가능합니다.
$view['ca_name'] 으로 확인해보시면됩니다.
이 값이 존재하려면
view.php 여야 합니다.
그게 아닌 리스트값인
http://domain.com/bbs/board.php?bo_table=free
라면
ca_name의 값이 여러개가 존재하게 되는데
foreach($list as $k => $v) {
$v['ca_name']; 으로 확인하거나
혹은
$list[$k]['ca_name'];
}
으로 확인하셔야 할겁니다.
답변에 대한 댓글 3개
다른 해법을 말씀드리면
직접 불러오는 방법입니다.
쿼리를 head.sub.php에 넣으면 지저분해질테니
/extend/user.config.php 파일에 넣으실 내용을
[code]
function get_caname($bo_table='free', $wr_id) {
global $g5;
$write_table = $g5['write_prefix'].$bo_table;
$sql = "SELECT if (ca_name is null, '-',ca_name) ca_name from {$write_table} where wr_id = '{$wr_id}' ";
$row = sql_fetch($sql);
return $row['ca_name'];
}
[/code]
를 넣으시고
head.sub.php파일에서 필요한 위치에
echo get_caname($bo_table, $wr_id);
로 접근해서 확인하세요
- 로찍히는경우는 ca_name이 없는 게시물입니다.
대신
$write['ca_name']
을 써 보세요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인