boxcategory.skin.php 에 해당 1차 2차 분류만 표시하고 싶습니다. 채택완료

boxcategory.skin.php 에 현재 분류에 속하는 1차분류와 그 2차분류를 표시하게 하고 싶습니다.

인덱스에는 인클루드 시키지 않을거고요.


원래는 모든 1차분류와 마우스오버하면 2차분류까지 나오는데

이것저것 하다보니 해당 1차분류만 나오게 하는 건 했습니다.

문제는 그 1차분류의 2차분류를 나오게 해야 하는데 그걸 모르겠어요.

사실 PHP를 전혀 몰라서...

검색을 이래저래해봤는데 제가 맞는 상황이 거의 없었는지 못찾았습니다.


혹시 아시는 분 있다면 조언 부탁드립니다.

아래는 현재 제가 수정한 코드입니다.


Copy
<!-- 쇼핑몰 카테고리 시작 -->            <nav class="subshopmn">                <!--h2>쇼핑몰 카테고리</h2-->                <ul id="gnb_1dul">                    <?php                    $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);                    ?>                    <li class="on"><a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row['ca_id']; ?>"><?php echo $row['ca_name']; ?></a></li>                </ul>            </nav>            <!-- 쇼핑몰 카테고리 끝 -->

답변 1개

채택된 답변
+20 포인트

질문에 보탬이 좀 될지모르겠지만

개념적으로 설명을 드립니다.


1줄짜리 카테고리는 필요하신 부분을 조절하시면 될거 같구요




쇼핑몰의 카테고리는


두개의 숫자로 커지게 되어있습니다.

예를들어

3단계 카테고리인경우

가전 > 영상 > TV 

의 네이게이션을 가진다고 가정하고

[가전] 의값은 

ca_id : 10

ca_name : 가전


[영상] 의 값은

ca_id : 1010

ca_name : 영상


[TV]의 값은

ca_id : 101010

ca_name : TV


를 가지고 있게됩니다.

물론

1개의 값들만 존재하는것으로 표현한거죠


복잡한 설명은 여기에 다 적을수 없기때문에


쿼리로 설명할경우


2레벨의 값을 다 표현하려면

위에 작성하신 방식은 


단일 카테고리만 존재한다고 봐야 합니다.


1레벨은 

ca_id 가 두개의 숫자만 가진것으로 판단한것이구요

그래서

쿼리상에서

length(ca_id) = 2 라고 보는겁니다.


ca_id 가 2자리로 구성된것들은 1레벨

4자리로 된것들은 2레벨

6자리로 된것들은 3레벨


그러면


위에서 표기하고자 하는대로 다 표현할수는 없겠죠


Copy
<!-- 쇼핑몰 카테고리 시작 -->            <nav class="subshopmn">                <!--h2>쇼핑몰 카테고리</h2-->                <ul id="gnb_1dul">                   <?php                    $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);                   // 이부분이 순환되어야 1레벨들이 표기되겠죠					while( $row=sql_fetch($hresult))	{						//1레벨의 카테고리 표기						?>						<li class="on">							<a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row['ca_id']; ?>"><?php echo $row['ca_name']; ?></a>						</li>						<?php						// 여기서 각각 1레벨의 연관 2레벨값들을 찾아봐야 합니다.						$hsql2 = "select ca_id, ca_name from {$g5['g5_shop_category_table']} where length(ca_id) = '4' and ca_use = '1' ";						//여기까지는 위의 카네고리와 유사하고 길이만 2레벨로 합니다만						// 1레벨의 연관을 찾기위해서 1레벨의 카테고리와의 연관성을 이어줍니다.						$hsql2 .="and ca_id like '".$row['ca_id']."$' ";						// 그리고 나서 정렬등을 처리하게 쿼리를 만듭니다.						$hsql2 .= "order by ca_order, ca_id ";						$hresult2 = sql_query($hsql2);						$hcnt = 0;						// 2레벨의 카테고리들이 존재하면 2차순환합니다. 						while ($row2 = sql_fetch($hresult2))	{							if ($hcnt == 0) {								//2레벨이 처음이면 태그열기?>							<ul id="gnb_2dul">							<?php }?>							<li ><a href="<?php echo G5_SHOP_URL.'/list.php?ca_id='.$row2['ca_id']; ?>"><?php echo $row2['ca_name']; ?></a></li>						<?php 							$hcnt++;						}						// 2차순환종료						// 2레벨이 작동했으면 태그닫기						if ($hcnt > 0)	{?>						</ul>						<?}?>				  <?php 					} 					// 1레벨의 카테고리 순환종료?>                </ul>            </nav>            <!-- 쇼핑몰 카테고리 끝 -->
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엄청 상세한 답변 감사합니다. 잘은 모르겠지만 좀 더 해볼게요.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고