메뉴 출력시 php 문법 질문
본문
안녕하세요 sir 회원님들
다름이 아니라 php를 아예 모르는 상태에서 메뉴 출력작업을 수정하다보니
방법을 모르겠어서 이렇게 질문을 남깁니다.
<div class="sub_ul_container cf">
<?php
// 1단계 분류 판매 가능한 것만
$hsql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where length(ca_id) = '2' and ca_use = '1' order by ca_order, ca_id ";
$hresult = sql_query($hsql);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=0; $row=sql_fetch_array($hresult); $i++)
{
// 2단계 분류 판매 가능한 것만
/* 2단계 분류를 사용하지 않아 주석처리 */
?>
<h3 class="menu_h3">
<?php echo $row['ca_name']; ?>
</h3>
<?php
$sql2 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row['ca_id']}' and ca_use = '1' order by ca_order, ca_id ";
$result2 = sql_query($sql2);
$count = sql_num_rows($result2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0)
echo '<ul class="sub_menu">'.PHP_EOL;
?>
<li>
<a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row2['ca_id']; ?>">
<?php echo $row2['ca_name'] ?>
</a>
</li>
<?php
}
if($k > 0)
echo '</ul>'.PHP_EOL;
?>
<?php } ?>
</div>
원본 소스는 이러하고
적용시 코드는
<div class="sub_ul_container cf">
<h3 class="menu_h3">A</h3>
<ul class="sub_menu">
...
</ul>
<h3 class="menu_h3">B</h3>
<ul class="sub_menu">
...
</ul>
<h3 class="menu_h3">C</h3>
<ul class="sub_menu">
...
</ul>
</div>
이렇게 출력됩니다.
다만 원하는 결과는 클래스 menu_h3가
ul 클래스인 sub_menu 바로 아래 자식요소의 첫번째로 출력되기를 바랍니다
echo부분을 수정해야하는데 태그를 연달아쓰니 제대로 출력이 안되고 php에러를 일으키던데 혹시 어떻게해야할까요?
답변 1
확인해 볼 수 없지만 이렇게 하시면 되는거 아닌가 싶습니다만
<div class="sub_ul_container cf">
<?php
// 1단계 분류 판매 가능한 것만
$hsql = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where length(ca_id) = '2' and ca_use = '1' order by ca_order, ca_id ";
$hresult = sql_query($hsql);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
for ($i=0; $row=sql_fetch_array($hresult); $i++) {
// 2단계 분류 판매 가능한 것만
/* 2단계 분류를 사용하지 않아 주석처리 */
$sql2 = " select ca_id, ca_name from {$g5['g5_shop_category_table']} where LENGTH(ca_id) = '4' and SUBSTRING(ca_id,1,2) = '{$row['ca_id']}' and ca_use = '1' order by ca_order, ca_id ";
$result2 = sql_query($sql2);
$count = sql_num_rows($result2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0)
echo '<ul class="sub_menu">'.PHP_EOL.'
<h3 class="menu_h3">'.$row['ca_name'].'</h3>'.PHP_EOL.'
<li>'.PHP_EOL.'
<a href="'.G5_SHOP_URL.'/list.php?ca_id='.$row2['ca_id'].'">'.$row2['ca_name'].'</a>'.PHP_EOL.'
</li>'.PHP_EOL;
}
if($k > 0)
echo '</ul>'.PHP_EOL;
}
?>
</div>