채택완료

코드 요약 부탁드립니다

2021-11-12 (금) 16:10:42 1,816
Copy
<ul>
    <?php
    $listUrl = G5_SHOP_URL . '/list.php?ca_id=';
    //1차 카테고리 리스트들 가져오기
    $res = sql_query(" select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_use = '1' and ca_id like '__' order by ca_order, ca_id ");
    for ($i = 0; $r = sql_fetch_array($res); $i++) {
        ?>
    <li class="<?php echo strpos($r['ca_id'], $ca_id) === 0 ? 'open' : ''; ?>">
        <a href="<?php echo $listUrl . $r['ca_id']; ?>"><?php echo get_text($r['ca_name']); ?></a>
        <?php
        //2차 카테고리 리스트들 가져오기
        $res2 = sql_query(" select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_use = '1' and ca_id like '{$r['ca_id']}__' order by ca_order, ca_id ");

        for ($j = 0; $r2 = sql_fetch_array($res2); $j++) {
            if ($j == 0)
                echo '<ul class="">' . PHP_EOL;

            //하위카테고리 상품 수량
            $temp = sql_fetch("select count(*) as cnt from {$g5['g5_shop_item_table']} where ca_id like '{$r2['ca_id']}%' or ca_id2 like '{$r2['ca_id']}%' or ca_id3 like '{$r2['ca_id']}%' ");
            ?>
            <li>
                <a href="<?php echo $listUrl . $r2['ca_id']; ?>" class=""><?php echo get_text($r2['ca_name']); ?> <span class="c_num">(<?php echo (int)$temp['cnt'] ?>)</span></a>
            </li>
            <?php
        }
        if ($j > 0)
            echo '</ul>' . PHP_EOL;
        ?>
            <li class="<?php echo strpos($r2['ca_id'], $ca_id) === 0 ? 'open' : ''; ?>">
        <a href="<?php echo $listUrl . $r2['ca_id']; ?>"><?php echo get_text($r2['ca_name']); ?></a>
        <?php
        //3차 카테고리 리스트들 가져오기
        $res3 = sql_query(" select ca_id, ca_name from {$g5['g5_shop_category_table']} where ca_use = '1' and ca_id like '{$r2['ca_id']}__' order by ca_order, ca_id ");

        for ($k = 0; $r3 = sql_fetch_array($res3); $k++) {
            if ($k == 0)
                echo '<ul class="">' . PHP_EOL;

            //하위카테고리 상품 수량
            $temp = sql_fetch("select count(*) as cnt from {$g5['g5_shop_item_table']} where ca_id like '{$r3['ca_id']}%' or ca_id2 like '{$r3['ca_id']}%' or ca_id3 like '{$r2['ca_id']}%' ");
            ?>
            <li>
                <a href="<?php echo $listUrl . $r3['ca_id']; ?>" class=""><?php echo get_text($r3['ca_name']); ?> <span class="c_num">(<?php echo (int)$temp['cnt'] ?>)</span></a>
            </li>
            <?php
        }
        if ($k > 0)
            echo '</ul>' . PHP_EOL;
        ?>
        </li>
        <?php
    }
    ?>
</ul>

그냥 막 가지고 온거긴 한데 너무 스파게티라 알아볼수가 없네영

답변 3개 / 댓글 3개

채택된 답변
+20 포인트
2021-11-12 (금) 16:28:19

효율은 떨어지지만 반복의 반복을 통한 전체 카테고리명 및 등록 상품수 출력이니

요약거리가 없네요. 스파게티 소스도 아니고요.

이 정도는 본인이 정리하고 이해해야, 응용&활용하는데 도움이 되지 않을까요?

답변에 대한 댓글 1개

넵 알겟습니다
2021-11-12 (금) 17:16:44

그냥 상품 카테고리 가져오기 같은데요? 1차부터 3차까진데 영카트 최신버전 코드도 참고해보세요

거기서는 깔끔하게 나왔어요 

답변에 대한 댓글 1개

감사합니다 선생님

질문이 추상적이네요.

답변에 대한 댓글 1개

for문에 갇혀잇어서 함수를 쓰기에도 뭐해서 어떻게 요약할지 문의드렷습니다

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