메인메뉴 출력부분 도움좀부탁합니다
본문
아래는 메인메뉴 출력소스입니다.
- 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']) ) { 으로 감싸주세요
$row['sub']의 데이터가 확인이 되지 않아 발생되는듯 하니
데이터가 존재하는지 확인후 foreach를 실행하시는게 좋을듯 합니다.
답변을 작성하시기 전에 로그인 해주세요.