카테고리관련다시 문의드립니다. > 그누4 질문답변

그누4 질문답변

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

카테고리관련다시 문의드립니다. 정보

카테고리관련다시 문의드립니다.

본문

먼저 글읽어주셔서 감사하구요..질문들어 가겠습니다.

예를들어 포토 라는게시판에 카테고리가 5개있다고 가정하겠습니다.

카테고리 네임은 1~5까지구요..

그걸 메뉴로 불러오는것까진 성공했습니다.

그럼 메뉴로 불러왔을때
1
2
3
4
5
이런식으로 나타나잖아요?

그런데.. 제가원하는방법은 카테고리 네임이 아니라 여분필드를 사용해

카테고리와 다른 이름의 메뉴로 만들고 싶습니다..

EX)






////////////////////////////////////////////////////////////////////////////////////////////////////




    $icon_h ="<img src='$g4[path]/left_menu_img/main_on_ico.jpg' width=15 height=12 border='0' align='absmiddle'>";

    $cnt = 2;
   
    $row = sql_fetch(" SELECT bo_category_list FROM $g4[board_table] WHERE bo_table = '$bo_table' ");
   
    $arr = explode("|", $row[bo_category_list]); // 구분자가 , 로 되어 있음
    $arr_sub = explode("|", $row[bo_8] ); //카테고리네임을변경하기위해만듬    구분자가 , 로 되어 있음
    $str = "";
   
    $str .= "<tr>";
   
    for ($i=0; $i<count($arr); $i++)
       
        if (trim($arr[$i]))  {
       
        //카테고리별 게시물수 체크
   
    $row1 = sql_fetch(" SELECT count(*) as cat_cnt FROM {$g4[write_prefix]}{$bo_table} WHERE ca_name = '$arr[$i]' and wr_comment >= 0 ");
       
        //새글표시(아이콘뉴) 부분
       
        $sql = " SELECT wr_datetime FROM {$g4[write_prefix]}{$bo_table} WHERE ca_name = '$arr[$i]' order by wr_datetime desc limit 1 ";
       
        $row2 = sql_fetch_array(mysql_query($sql));

        if($row2[wr_datetime] >= date("Y-m-d H:i:s", time() - 24 * 3600)) {
             
        $icon_new  = " <img src='$g4[path]/left_menu_img/icon_new.gif' width='11' height='8' border='0' align='absmiddle'>";
                   
        } else {
       
        $icon_new  = "";
       
        }
               
//수정한것
$str .= "<td height='23' style='padding-left:5px; padding-top:3px;'>"
//$str .= "<td height='23' bgcolor='#FFFFFF' style='padding-left:5px; padding-top:3px;'>".$icon_h.
"&nbsp;<a href='$g4[path]/bbs/board.php?bo_table=$bo_table&page=$page&mode=$mode&sca=$arr[$i]'>
<span class=menu_on>$arr_sub[$i]</span></a><span class=new>[".$row1[cat_cnt]."]</span> "
.$icon_new."</td>";

if ($cnt == 2) { $cnt = 1; $str .= "<tr></tr>"; } //줄바꿈 부분
   
    $cnt++;
    }
   
?>

<table border=0 cellspacing=0 cellpadding=2 width=100% align=center>

<?=$str?><!--실제출력부분-->

</table>


////////////////////////////////////////////////////////////////////////////////////////////////////





어떤식으로 해야될까요?? 힌트좀 주십시요.. 완전초보라... 감이 오질않네요...

끝까지 읽어주셔서 감사합니다..^^
  • 복사

댓글 전체

//수정한것
$str .= "<td height='23' style='padding-left:5px; padding-top:3px;'>"
//$str .= "<td height='23' bgcolor='#FFFFFF' style='padding-left:5px; padding-top:3px;'>".$icon_h.
"&nbsp;<a href='$g4[path]/bbs/board.php?bo_table=$bo_table&page=$page&mode=$mode&sca=$arr[$i]'>
<span class=menu_on>$arr_sub[$i]</span></a><span class=new>[".$row1[cat_cnt]."]</span> "
.$icon_new."</td>";

소스를 봐서는 여분필드 bo_8을 사용하시는 것 같은데
그렇다면 아래 $str.=을 사용하셔야 할 것 같은데
현재는 위의 $str.=을 사용하게 되어 있네요.
주석 처리를 위에 하시고
아래는 주석을 제거하고 해 보세요.

이렇게.....

//수정한것
//$str .= "<td height='23' style='padding-left:5px; padding-top:3px;'>" ;
$str .= "<td height='23' bgcolor='#FFFFFF' style='padding-left:5px; padding-top:3px;'>".$icon_h.
"&nbsp;<a href='$g4[path]/bbs/board.php?bo_table=$bo_table&page=$page&mode=$mode&sca=$arr[$i]'>
<span class=menu_on>$arr_sub[$i]</span></a><span class=new>[".$row1[cat_cnt]."]</span> "
.$icon_new."</td>";

그리고 구분자가 | 인지 , 인지 확인해 보셔야 정상적으로 되지 않을까요?
ohora님 답변감사합니다. 여분필드8을사용했구요..
구분자를 | 사용했구요..

//수정한것
$str .= "<td height='23' style='padding-left:5px; padding-top:3px;'>" 
.$icon_h.
"&nbsp;<a href='$g4[path]/bbs/board.php?bo_table=$bo_table&page=$page&mode=$mode&sca=$arr[$i]'>
<span class=menu_on>$arr_sub[$i]</span></a><span class=new>[".$row1[cat_cnt]."]</span> "
.$icon_new."</td>";

이렇게 사용을 했는데.. 아무것도 나타나지 않습니다...

혹시 다른부분을 수정해야되는건아닌지요??
이렇게
$str .= "<td height='23' style='padding-left:5px; padding-top:3px;'>" 
.$icon_h.
"&nbsp;<a href='$g4[path]/bbs/board.php?bo_table=$bo_table&page=$page&mode=$mode&sca=$arr[$i]'>
<span class=menu_on>".$arr_sub[$i]."</span></a><span class=new>[".$row1[cat_cnt]."]</span> "
.$icon_new."</td>";

또는
//수정한것
$str = "<td height='23' style='padding-left:5px; padding-top:3px;'>" 
.$icon_h.
"&nbsp;<a href='$g4[path]/bbs/board.php?bo_table=$bo_table&page=$page&mode=$mode&sca=$arr[$i]'>
<span class=menu_on>".$arr_sub[$i]."</span></a><span class=new>[".$row1[cat_cnt]."]</span> "
.$icon_new."</td>";

이렇게 한 번 해 보세요.
ohora님 답변감사합니다.

for ($i=0; $i<count($arr); $i++)
       
        if (trim($arr[$i]))  {
혹시 윗부분을 수정해야되는것아닌가요??

 ohora님께서 수정해주신소스가 제가 처음한 소스랑 같은현상입니다.
trim은 문자열의 앞뒤 공백을 제거하고 리턴하는 함수입니다.
자세히 보지 않고 않된다고 하신 부분만 봤더니......^^
님의 소스대로 한다면 이 부분을 변경해야 겠네요.
$row = sql_fetch(" SELECT bo_category_list FROM $g4[board_table] WHERE bo_table = '$bo_table' ");
결과를 bo_category_list값만 구하기 때문에 bo_8 값은 없는 상태지요.
그러니 당연히 $arr_sub값은 없지요.
$row = sql_fetch(" SELECT * FROM $g4[board_table] WHERE bo_table = '$bo_table' ");
이렇게 변경하고 해 보세요...
© SIRSOFT
현재 페이지 제일 처음으로