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

상품 리스트 스킨에서 조건별 상품 출력하기 채택완료

꼴랑2 9년 전 조회 8,516

밑에 드렸던 질문인데 다시한번 질문드립니다.

 

리스트스킨을 통해 상품을 출력할때 여분필드1의 값에 해당하는 상품만 출력하고 싶습니다.

통상적으로 shop/list.php 에서 $list = new item_list(); 항목에서 각각 정의하고,

list10.skin.php 에서    

 if ($this->view_it_name) {         echo stripslashes($row['it_name'])."\n";

    }

이런식으로 출력을 하는데요, 아쉽게도 현재 스킨은 조건문을다 걷어버린상태입니다.

답글에 먼지손님께서 아래처럼 구현해주셨는데요, list.php 를 건드려도 스킨에서 출력되는건 영향을

못끼치는 상태입니다.

 

$list = new item_list();

$list->set_type(1); // 스킨파일과 썸네일 크기등 나머지와 동일하게 셋팅하기 위함

$list->set_query("select * from `{$g5['g5_shop_item_table']}` where it_use = '1'  and it_1='1'  order by it_order, it_id desc limit 10");

echo $list->run();

?>

 

근본적으로 프론트 리스트에 상품을 뿌려주는 쿼리문이 있을텐데요 여기에 where 절을 추가 하면 안될까요?? 아님 다른방법이 없을런지요??

 

아래는 현재의 스킨소스입니다.

 

 

</strong><?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p><p>// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);</p><p> </p><p>?></p><p><script type="text/javascript"> 
$(document).ready( 
function() { 
$.each($('.tr_arr:odd'), function(i){ // 홀수 번째 
$(this).css("backgroundColor", "#F7F7F7"); 
}); 
$.each($('.tr_arr:even'), function(i){ //짝수 번째 
$(this).css("backgroundColor", "#FFFFFF"); 
}); 
}); </p><p> </p><p>$(function(){
 $('.forRowspan').each(function() {
  var table = this;
  $.each([1] , function(c, v) {
   var tds = $('>tbody>tr>td:nth-child(' + v + ')', table).toArray(), i = 0, j = 0;
   for(j = 1; j < tds.length; j ++) {
    if(tds[i].innerHTML != tds[j].innerHTML) {
     $(tds[i]).attr('rowspan', j - i);
     i = j;
     continue;
    }
    $(tds[j]).hide();
   }
   j --;
   if(tds[i].innerHTML == tds[j].innerHTML) {
    $(tds[i]).attr('rowspan', j - i + 1);
   }
  });
 });
});</p><p></script> </p><p>
  
<div style="width: 1000px;  border-top: 0px solid #DEDEDE; border-bottom: 2px solid #DEDEDE;"></p><p>  <table  cellpadding="0" cellspacing="1" border="0" style="width:1000px; background-color:#CCC" class="forRowspan">
  </p><p>    <?php for ($i=0; $row=sql_fetch_array($result); $i++) { 
 
    // 상품품절체크
  $is_soldout = is_soldout($row['it_id']);</p><p>  // 주문가능체크
  $is_orderable = true;
    if(!$row['it_use'] || $row['it_tel_inq'] || $is_soldout)
        $is_orderable = false;
  
   ?></p><p> </p><p>
<a href=""></a></p><p>     <tr class="tr_arr"> 
   </p><p>            <td width="350px" style="padding:4px 10px; line-height:180%" onClick="window.open('<?php echo G5_SHOP_URL; ?>/item_popup.php?it_id=<?php echo $row['it_id'] ?>','mailform','width=600, height=520, toolbar=no, menubar=no, scrollbars=yes, resizable=yes');">  
<span style="font-size:14px"><? echo $row['it_name'] ?></span>   <img src = "../img/course/info_kangja.jpg" align="absmiddle"></p><p>

<span style="color:#666; font-size:14px">
     <?php if($row['it_basic'])
  {
   echo conv_content($row['it_basic'], $html); 
  }  
   ?>
</span>
</td></p><p>
 <td width="200px" style="padding:4px 10px"> </td>
  <td width="420px" style="padding:4px 10px">
        <span style="font-size:13px">            
  <?php 
        $sql2 = "select * from `teacher` where `it_id` = '{$row['it_id']}'";
  $result2 = sql_query($sql2, false);
         for ($i=0; $row2=sql_fetch_array($result2); $i++) { 
  ?> 
   <b><?php echo $row2['wr_session']; ?></b> <?php echo $row2['wr_teacher']; ?>  
  <? } ?>     
        </span></td>
  <td width="100px" style="padding:4px 10px" align="center">
       <?php  if($row['it_11'] == '신청'){ ?>
        <a href="<?php echo G5_SHOP_URL; ?>/item.php?it_id=<?php echo $row['it_id'] ?>" class="sct_a"><img src = "../img/bbs/btn_B.gif" align="absmiddle"></a>
  <?php } elseif($row['it_11'] == '임박'){ ?>    
        <a href="<?php echo G5_SHOP_URL; ?>/item.php?it_id=<?php echo $row['it_id'] ?>" class="sct_a"><img src = "../img/bbs/btn_ending.gif" align="absmiddle"></a>
        <?php } elseif($row['it_11'] == '마감'){ ?>    
        <img src = "../img/bbs/btn_end.gif" align="absmiddle">
        <?php } elseif($row['it_11'] == '대기중'){ ?>    
        <a href="#" onClick="window.open('../formmail/form_reservation.html','mailform','width=580, height=520, toolbar=no, menubar=no, scrollbars=no, resizable=yes');return false;"><img src = "../img/bbs/btn_k2.gif" align="absmiddle"></a>        
     <?php } ?>    </p><p>        </td>
 </tr>
  
    </p><p><? } ?></p><p>    </table></p><p>
</div><strong>
 

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

답변 1개

채택된 답변
+20 포인트
9년 전

원글에 답변했습니다만 검색을 다시 답변답니다.

 

제 답변은 사실 프론트라고 하셔서 shop/index.php 여기를 상정해서 단 답변이었습니다.

list.php도 마찬가지긴 합니다. 요는 set_query()라는 메서드였죠. 조건을 추가하려는등 임의로 sql문을 바꾸려면 이걸 사용하시면 됩니다.

스킨에서는 이미 디비에서 데이터를 가져온 후에 출력만 담당하는 부분이라 조건을 추가하려면 결국 list.php 파일을 수정하셔야 할겁니다.

기본 sql문은 말씀하신대로 shop.lib.php 에 있습니다만 그걸 수정하시면 원치않는 결과를 보실수도..

 

set_query()로 sql문을 새로 지정하면 카테고리가 무시되니 그 부분도 넣어줘야겠네요.

list.php 에서 echo $list->run(); 이 문장을 찾아 바로 위에 추가해주세요.

다른 부분은 가급적 그냥 두심이 좋겠습니다.

</p><p>        $where = '';</p><p>        if ($ca['ca_id']) {</p><p>            $where = " ca_id like '{$ca['ca_id']}%' or ca_id2 like '{$ca['ca_id']}%' or ca_id3 like '{$ca['ca_id']}%' ";</p><p>        }</p><p>        $where .= ($where?' and ':'') . ' it_1="1" '; // 추가 조건문</p><p>        $sql = " select * from `{$g5['g5_shop_item_table']}` " . ($where?' where '.$where:'') . ' order by $order_by limit $from_record, ".($ca['ca_list_mod'] * $ca['ca_list_row']);</p><p>        $list->set_query($sql);</p><p>

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

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

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

로그인