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

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

QA

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

본문

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

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


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

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

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

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

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


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

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



<!-- 쇼핑몰 카테고리 시작 -->
            <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

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

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


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레벨


그러면


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



       <!-- 쇼핑몰 카테고리 시작 -->

            <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>

            <!-- 쇼핑몰 카테고리 끝 -->
답변을 작성하시기 전에 로그인 해주세요.
전체 16,776
QA 내용 검색

회원로그인

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