메인메뉴 출력부분 도움좀부탁합니다

메인메뉴 출력부분 도움좀부탁합니다

QA

메인메뉴 출력부분 도움좀부탁합니다

본문

 

아래는 메인메뉴 출력소스입니다. 

  • Warning: Undefined array key "sub" in/home1/dawayo/public_html/dawayo/theme/dw_bootstrap/include/common/nav_make.phpon line36
  • 위와 같이 오류가 뜹니다.  아래 소스내용의 파일이 nav_make.php 이구요
  • 게시판에서는 오류가 안뜨고 게시판이 아닌곳에서는 위와 같은 오류가 뜹니다.(index,new 등 ---)
  • 관리자페이지에서 메뉴생설할때 그룹밑에 게시판 메뉴를 생성하지 않고 게시판만 메뉴로 생성하면 오류가 뜹니다.
  • 위 오류 중에서 line 36 은 아래 소스에서 foreach ((array) $row['sub'] as $row2) {  입니다
  • 집에 윈도우 컴에 아파치서버 설치하고 테스트하면 정상인데 리눅스 웹호스팅에 올리면 오류가 뜹니다

<?php
    $sql = " select *
        from {$g5['menu_table']}
        where me_use = '1'
        and length(me_code) = '2'
        order by me_order, me_id ";
        $result = sql_query($sql, false);
        $gnb_zindex = 999999; // gnb_1dli z-index 값 설정용
        $menu_datas = array();
    for ($i = 0; $row = sql_fetch_array($result); $i++) {
        $menu_datas[$i] = $row;
        $sql2 = " select *
            from {$g5['menu_table']}
            where me_use = '1'
            and length(me_code) = '4'
            and substring(me_code, 1, 2) = '{$row['me_code']}'
            order by me_order, me_id ";
        $result2 = sql_query($sql2);
        for ($k = 0; $row2 = sql_fetch_array($result2); $k++) {
            $menu_datas[$i]['sub'][$k] = $row2;
        }
    }
    $i = 0;
    foreach ($menu_datas as $row) {
        if (empty($row)) continue;
        if (empty($menu_datas[$i]['sub']['0'])) {?>
            <li class="nav-item" style="list-style:none;border:0px solid blue">
                <a class="text_main_menu px-4"  href="<?php echo $row['me_link']; ?>"  style="list-style:none;">
                <span  class=" fs-6  fw-bold <?php if($main_nav_bg =="yes") echo "text_main_menu" ; else echo "text_title";?> " >
                     <?php echo $row['me_name'] ?>
                </span>
                </a>
            </li>
        <?php }
        $k = 0;
        foreach ((array) $row['sub'] as $row2) {
            if (empty($row2)) continue;
            if ($k == 0) { ?>
                <li class="nav-item   dropdown " style="list-style:none">
                    <button class="dropdown-toggle border-0 px-4 <?php if($main_nav_bg =="yes") echo "main_nav_bg";else echo "m_box_container";?>"  data-bs-toggle="dropdown" aria-expanded="false">
                        <span  class=" fs-6 fw-bold <?php if($main_nav_bg =="yes") echo "text_main_menu" ; else echo "text_title";?> " >
                            <?php echo $row['me_name'] ?>
                        </span>
                    </button>
                    <ul    class="dropdown-menu mt-2 pt-3 shadow-sm border-0  animate fade-down rounded-0 <?php if($main_nav_bg =="yes") echo "main_nav_bg";else echo "m_box_container";?>" >
                        <li>
            <?php } ?>
                    <a  class="dropdown-item px-4 <?php if($main_nav_bg =="yes") echo "text_main_menu" ; else echo "text_title";?> " href="<?php echo $row2['me_link']; ?>">
                        <?php echo $row2['me_name'] ?>
                    </a>
            <?php
                $k++;
        }   //end foreach $row2
            if ($k > 0)
                        echo'</li>'. PHP_EOL;
                    echo'</ul>'. PHP_EOL;
                echo'</li>'. PHP_EOL;
                $i++;
    }   //end foreach $row
        if ($i == 0) {  ?>
            <div class="text-center mt-2 ">메뉴 준비 중입니다.
                <?php if ($is_admin) { ?>
                <a class="text-danger fw-bold" href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">
                    관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.
                <?php } ?>
            </div>
        <?php }    else { ?>
        <?php } ?>
 

 

https://dawayo.kr/ 는 오류가 출력되는 홈페이지 입니다

이 질문에 댓글 쓰기 :

답변 2

foreach ((array) $row['sub'] as $row2) {

를 if( is_array($row['sub']) ) {  으로 감싸주세요

답변 감사합니다만~~~

if( is_array($row['sub']) ) { 
foreach ((array) $row['sub'] as $row2) {
~~~~~~~~~~~~~~~
}  //end foreach $row2
}

위 와 같이 했는데 별 반응이 없네요..어디까지 감싸야 하는 지요

$row['sub']의 데이터가 확인이 되지 않아 발생되는듯 하니

데이터가 존재하는지 확인후 foreach를 실행하시는게 좋을듯 합니다.

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

회원로그인

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