테스트 사이트 - 개발 중인 베타 버전입니다

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

벽묘 8년 전 조회 3,159

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

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

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

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

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

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

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

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

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

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

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

답변 1개

채택된 답변
+20 포인트
플래토
8년 전

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

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

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

그러면

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

로그인