서브메뉴 페이지 메뉴이름 오류

서브메뉴 페이지 메뉴이름 오류

QA

서브메뉴 페이지 메뉴이름 오류

본문

서브페이지에 노랑색 표시된곳이 메뉴 이름이 적용이 안되는건 어느 페이지에서 어떤 오류가 있는걸 까요?

없던 3차 메뉴 도움을 받아 만들었는데, 메뉴명이 제대로 출력되지 않습니다.

3차메뉴 1번은 제대로 나오는데 2번부터 제대로 나오지 않습니다.

3차 1번 메뉴 충전건 처럼 2번메뉴도 나와야하는데.. 다르게 나옵니다.. 3554492705_1697073667.5164.png

3554492705_1697073104.7772.png

 

DB구조는 아래와 같습니다.

3554492705_1697073623.3382.png

어떤것때문에 오류가 나는건지..아시는분 계실까요??

이 질문에 댓글 쓰기 :

답변 4

이것만 봐서는 정확한 확인이 어렵고 해당 소스코드를 봐야 할듯 한데요
해당 변수 전달과정에서 쿼리로 메뉴명을 제대로 가져오고 있는지 디버깅을 해서 체크해 보셔야 할듯 합니다.

이 코드 같은데.. 어떤게 잘못 되었을까요?


<?php
$sql = " select * from {$g5['menu_table']} where length(me_code) = '4' and me_link like '%".$filter_type5."%' and me_use = '1' order by me_order, me_id "; // me_code가 4개 이상인 2차 메뉴 가져온다.
$query = sql_query($sql);
$total_count  = sql_num_rows($query);
$row = sql_fetch_array($query);
$sqlc = " select * from {$g5['menu_table']} where length(me_code) = '2' and me_link like '%".$filter_type5."%' and me_use = '1' order by me_order, me_id "; // me_code가 4개 이상인 2차 메뉴 가져온다.
$queryc = sql_query($sqlc);
$rowc = sql_fetch_array($queryc);
$rowc['me_code'] = isset($rowc['me_code']) ? $rowc['me_code'] : false;
$row['me_code'] = isset($row['me_code']) ? $row['me_code'] : false;
if($rowc['me_code']){
$me_code = $rowc['me_code'];
} else {
$me_code = $row['me_code'];
}
$keyword = substr($me_code, 0, 2);
$sql_submenus = " select * from {$g5['menu_table']} where length(me_code) = '2' and me_use = '1' order by me_order, me_id "; // 2차메뉴 전체를 불러온다.
$query_submenus = sql_query($sql_submenus); // 쿼리 실행
$sql_submenu = " select * from {$g5['menu_table']} where me_code = '".$keyword."' and length(me_code) = '2' and me_use = '1' order by me_order, me_id "; // 2차메뉴를 불러온다.
$query_submenu = sql_query($sql_submenu); // 쿼리 실행
$total_count_submenu  = sql_num_rows($query_submenu); // 해당하는 쿼리가 몇개나있는가?
$submenu_row = sql_fetch_array($query_submenu); // array형태로 재배열
$sql2 = " select * from {$g5['menu_table']} where me_code like '".$keyword."__' and length(me_code) = '4' and me_use = '1' order by me_order, me_id "; // 2차메뉴를 불러온 뒤, 앞선 2가지 메뉴코드를 통해 me_code 1차 메뉴 가져온다.
$query2 = sql_query($sql2); // 쿼리 실행
$total_count2  = sql_num_rows($query2); // 해당하는 쿼리가 몇개나있는가?
if(!$filter_type5){
    $keyword = 10;
    if(strpos($_SERVER['PHP_SELF'], 'bbs')){
    $submenu_row['me_name'] = '멤버쉽';
    $row['me_name'] = $g5['title'];
    }
}
if(!$keyword){
    $keyword = 10;
    if(strpos($_SERVER['PHP_SELF'], 'bbs')){
    $submenu_row['me_name'] = '멤버쉽';
    $row['me_name'] = $g5['title'];
    }
}
?>
<!-- 서브배너 시작 -->
<div id="sub_background" class="l<?php echo $keyword?>">
    <h1 class="wow fadeInUp"><?php echo $submenu_row['me_name']?></h1>
    <h2 class="wow fadeInUp"><?php echo $row['me_name']?></h2>
</div>
<!-- 서브배너 종료 -->
<!-- 서브메뉴 시작 -->
<div id="sub_menu">
    <div class="wrap">
        <ul class="depth01">
            <li><a href="<?=G5_URL?>"><i class="fa fa-home" aria-hidden="true"></i></a></li>
            <li><?php echo $submenu_row['me_name'];?>
                <ul>
                <?php
                while($sr = sql_fetch_array($query_submenus)){
                    echo "<a href='".$sr['me_link']."'><li>".$sr['me_name'].'</li></a>';
                }
                ?>
                </ul>
            </li>
            <li class='on'>
            <?php echo $row['me_name']; ?>
                <ul>
                <?php
                while($two_submenu = sql_fetch_array($query2)){
                    echo "<a href='".$two_submenu['me_link']."'><li>".$two_submenu['me_name'].'</li></a>';
                }
                ?>
                </ul>
            </li>
            <li class='on'>
            <?php
                $sql3 = " select * from {$g5['menu_table']} where length(me_code) = '6' and me_link like '%".$filter_type5."%' and me_use = '1' order by me_order, me_id "; // me_code가 6개 이상인 3차 메뉴 가져온다.
                $row3 = sql_fetch($sql3);
                echo $row3['me_name'];
            ?>
                <ul>
                <?php
                $sql3 = " select * from {$g5['menu_table']} where me_code like '".substr($me_code, 0, 4)."%' and length(me_code) = '6' and me_use = '1' order by me_order, me_id "; // 3차메뉴를 불러온다.
                $query3 = sql_query($sql3);
                while($submenu3 = sql_fetch_array($query3)){
                    echo "<a href='".$submenu3['me_link']."'><li>".$submenu3['me_name'].'</li></a>';
                }
                ?>
                </ul>
            </li>
        </ul>
    </div>
</div>
<!-- 서브메뉴 종료 -->
<script>
$(function(){
    $(".depth01").find("> li").click(function(){
        $(this).find("> ul").slideToggle();
    })
})
</script>

// $filter_type5 변수의 값 출력
var_dump($filter_type5);
// $keyword 변수의 값 출력
var_dump($keyword);

이걸로 확인해보니까요 제대로 나오는 3차메뉴는 

 

string(7) "evboard" string(2) "20" >> 이렇게 불러오는데

1차,2차메뉴가 잘못나오는 곳은 
string(10) "ev_charger" int(10) >> 이렇게 나오네요..

아래와 같이 수정해보세요.


<?php
$keyword = substr($me_code, 0, 4);
$sql = " select * from {$g5['menu_table']} where me_code = '".$keyword." and me_use = '1' "; // 2차 메뉴 가져온다.
$query = sql_query($sql);
$total_count  = sql_num_rows($query);
$row = sql_fetch_array($query);
 
$keyword = substr($me_code, 0, 2);
$sqlc = " select * from {$g5['menu_table']} where me_code = '".$keyword." and me_use = '1' "; // 1차 메뉴 가져온다.
$queryc = sql_query($sqlc);
$rowc = sql_fetch_array($queryc);
답변을 작성하시기 전에 로그인 해주세요.
전체 123,802 | RSS
QA 내용 검색

회원로그인

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