솔소님 제작한 영카트5 테마 오류
본문
솔소님이 제작한 [5.3] lemon영카트 테마 중 아래와 같은 것이 있는데요.
https://theme.sir.kr/youngcart53/demo/lemon
왼쪽 카테고리(히트상품, 추천상품...) 클릭하면 아래와 같은 오류 메시지 나옵니다.
히트상품
select * from yc5_menu_copy where me_use = '1' and length(me_code) = '2' order by me_order, me_id
아무래도 /shop/category.php 에서
아래 php 구문 오류인거 같습니다.
어디가 잘못된 것일까?
맨 마지막줄에서 " { " 시작하고 닫지를 않았는데... 이것이 문제인가요?
<?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 = 999; // 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;
?>
답변 4
괄호 짝은 반드시 맞춰주셔야합니다.
foreach 문이 어디서 끝날지는 모르겠으나 짝이 없다면 맞춰서 써주세요.
오류가아니고 sql 쿼리를 찍어본게아닌가요?
echo $sql; 이런게 있나 한번 확인해보세요!
잇으면 주석처리나 지워주세요!
다시 확인해 보니... 맨 처음 언급한...
맨 마지막줄에서 " { " 시작하고 닫지를 않았는데... 이것은 아니네요...
아래 구문을 보면 정상적으로 닫혔네요.
해당 전체 소스를 보면 아래와 같습니다.
<div class="ct_ul">
<ul>
<?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 = 999; // 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;
?>
<li class="li_1">
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="li_a_1"><?php echo $row['me_name'] ?></a>
<?php
$k = 0;
foreach( (array) $row['sub'] as $row2 ){
if( empty($row2) ) continue;
if($k == 0)
echo '<ul class="menu_2dul">'.PHP_EOL;
?>
<li class="li_2"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>"><?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2
if($k > 0)
echo '</ul>'.PHP_EOL;
?>
</li>
<?php
$i++;
} //end foreach $row
if ($i == 0) { ?>
<li class="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 > 환경설정 > 메뉴설정</a>에서 설정하실 수 있습니다.<?php } ?></li>
<?php } ?>
</ul>
</div>
질문 내용중에
히트상품
select * from yc5_menu_copy where me_use = '1' and length(me_code) = '2' order by me_order, me_id
아무래도 /shop/category.php 에서
아래 php 구문 오류인거 같습니다.
위의 내용중에 select * from yc5_menu_copy 라는 문자열을 보면은
yc5_menu_copy 라는 테이블은 처음 보네요.