채택완료

search.php 분류명 앞에 1차분류명 넣기

2021-05-28 (금) 16:49:36 1,970

30726684_1622188126.9998.png

루이비통이라고 검색하면 루이비통이라고만 뜨는데 이러면 머가 먼지 보기 어려울꺼같아서요.

지금 저게 3차메뉴인데, 이름 앞에 1,2차분류도 뜨게 할 수 있나요?

코드는 이렇게 되있습니다

<div class="search_list">
            <h2 class="m_tt hidden-xs">PRODUCT LIST(<?php echo number_format($total_count);?>)</h2>
            <span class="pull-left visible-xs"><?php echo $q; ?></span>
            <select name="sortodr" onchange="set_ca_id(this.value); return false;" class="form-control">
                <option value="">전체분류(<?php echo number_format($total_count);?>)</option>
                <?php for($i=0;$i < count($category); $i++) { ?>
                    <option value="<?php echo $category[$i]['ca_id'];?>"<?php echo ($qcaid === $category[$i]['ca_id']) ? ' selected' : '';?>><?php echo $category[$i]['ca_name'];?>(<?php echo number_format($category[$i]['cnt']);?>)</option>
                <?php } ?>
            </select>
        </div>

|

답변 2개 / 댓글 5개

채택된 답변
+20 포인트
2021-05-28 (금) 17:42:55

/shop/search.php에서 다음 부분 처럼 바꿔 보세요.

$categorys = array();
// 검색된 분류를 배열에 저장
while($row = sql_fetch_array($result)){
        $len= strlen( $row['ca_id']);

        if( $len > 2 ) {
        $ids=array();
        for( $ii=2; $ii< $len; $ii+=2) {
                $ids[]= "'".substr( $row['ca_id'],0, $ii)."'";
        }
        $id_cond= implode(',',$ids);
        $tmp= sql_fetch( "select group_concat( ca_name separator '>') names from g5_shop_category where ca_id in ( $id_cond ) ");
        $row['ca_name']=$tmp['names'].'>'.$row['ca_name'];

        }

    $categorys[] = $row;
}

답변에 대한 댓글 3개

2021-06-01 (화) 10:21:05
$categorys = array(); 이부분에 적용하는거 맞으시죠?

보내주신 코드 그대로 적었는데 아무 반응이 없네요ㅠ
$categorys = array();
// 검색된 분류를 배열에 저장
while($row = sql_fetch_array($result)){
$categorys[] = $row;
}
==== 위 부분을 대체하는 것입니다.
$categorys = array();
// 검색된 분류를 배열에 저장
while($row = sql_fetch_array($result)){
$len= strlen( $row['ca_id']);

if( $len > 2 ) {
$ids=array();
for( $ii=2; $ii< $len; $ii+=2) {
$ids[]= "'".substr( $row['ca_id'],0, $ii)."'";
}
$id_cond= implode(',',$ids);
$tmp= sql_fetch( "select group_concat( ca_name separator '>') names from g5_shop_category where ca_id in ( $id_cond ) ");
$row['ca_name']=$tmp['names'].'>'.$row['ca_name'];

}

$categorys[] = $row;
}
$category= $categorys; // 이것도 추가해 보세요. 영카트 버전에 다른 것인지 변수 명이 살짝 다르네요
2021-06-01 (화) 14:34:40
저는 저부분이

// 분류
$categorys = array();
// 검색된 분류를 배열에 저장

$field = "b.ca_id, b.ca_name, b.as_min, b.as_max, b.as_grade, b.as_equal, b.as_menu_show, count(*) as cnt";
$sql = " select $field $sql_common $sql_where group by b.ca_id order by b.ca_id ";
$result = sql_query($sql);
$z=0;
for ($i=0; $row=sql_fetch_array($result); $i++) {

if(!$is_admin && $row['as_menu_show']) { // 접근제한
if(apms_auth($row['as_grade'], $row['as_equal'], $row['as_min'], $row['as_max'], 1)) continue;
}

$category[$z] = $row;
$z++;
}

이런식으로 들어가있어서요. 저기서 $categorys = array(); 이부분 변경하니 안되네요
2021-06-02 (수) 00:13:17

// 분류
$categorys = array();
// 검색된 분류를 배열에 저장

$field = "b.ca_id, b.ca_name, b.as_min, b.as_max, b.as_grade, b.as_equal, b.as_menu_show, count(*) as cnt";
$sql = " select $field $sql_common $sql_where group by b.ca_id order by b.ca_id ";
$result = sql_query($sql);
$z=0;
for ($i=0; $row=sql_fetch_array($result); $i++) {

if(!$is_admin && $row['as_menu_show']) { // 접근제한
if(apms_auth($row['as_grade'], $row['as_equal'], $row['as_min'], $row['as_max'], 1)) continue;
}
        $len= strlen( $row['ca_id']);

        if( $len > 2 ) {
        $ids=array();
        for( $ii=2; $ii< $len; $ii+=2) {
                $ids[]= "'".substr( $row['ca_id'],0, $ii)."'";
        }
        $id_cond= implode(',',$ids);
        $tmp= sql_fetch( "select group_concat( ca_name separator '>') names from g5_shop_category where ca_id in ( $id_cond ) ");
        $row['ca_name']=$tmp['names'].'>'.$row['ca_name'];

        }


$category[$z] = $row;
$z++;
}

이렇게 해 보세요.

답변에 대한 댓글 2개

2021-06-02 (수) 15:26:47
진짜 너무너무너무너무너무너무 감사합니다ㅠㅠㅠㅠ 며칠동안 정말 감사했습니다! 복많이받으세요!!!
잘 된다니 다행입니다.

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