제품상세페이지 커스텀(?) 관련해서 sql 문 확인 부탁드립니다..;; 채택완료
핫딜(?), 한정 특가(?)같은 개념으로 프로모션(전제품 20% 할인) 이런식의 이벤트성으로 진행예정입니다.
ca_id 10 : 전 제품
ca_id 20 : 프로모션
ca_id 가 10인 카테고리에 제품이 20개 등록되어있고,
ca_id 20을 만들고 거기에 A라는 프로모션용 제품을 등록하고,
옵션에 ca_id가 10인 모든 제품명을 넣고, 금액도 다 넣은 상태에서
상세페이지 부분에 어떤 옵션들이 있는지 옵션목록을 가져와서
원하는 옵션 클릭시 해당 제품의 상세설명에 등록된 이미지를 모달로 띄우는정도 입니다...
지금 말씀드린 내용과 비슷한 UI(?)는 소셜커머스에서 많이 볼 수 있는 UI 입니다...
php, sql 를 제대로 배운적없이 그냥 그누보드, 영카트 가지고 검색해가며 습득한(?) 근본없는 실력인 상황에서 구현해봤습니다...;; 로직은 생각한대로 짜본건데 제대로 구현은 됩니다...
/skin/shop/basic/item.info.php 에서 상품 상세설명에 들어간 작업
</p>
<p>// 200409 프로모션 전제품출력 작업
if( $it['ca_id'] === '20' && $it['it_3'] ){
$sql = " select * from {$g5['g5_shop_item_option_table']} where io_type = '0' and io_use = '1' and it_id = '{$it['it_id']}' order by io_no "; // it_id를 대조해 옵션테이블에서 옵션들을 가져옴
$result = sql_query($sql);</p>
<p> </p>
<p> $pattern = "/<img.*?src=[\"']?(?P<url>[^(http)].*?)[\"' >]/i"; // img 정규식?</p>
<p> </p>
<p> $str = '<div class="promotion-items"><div class="all-items"><ul class="sct sct_10 lists-row clearfix">';
for($i=0;$row=sql_fetch_array($result);$i++){ // 등록된 옵션의 개수만큼 가져옴</p>
<p> $sql = " select * from {$g5['g5_shop_item_table']} where ca_id != '{$it['ca_id']}' and it_use = '1' and it_name = '{$row['io_id']}' "; // 옵션명(io_id)과 제품명(it_name)을 대조해 썸네일, 상세페이지이미지 를 가져옴
$result2 = sql_fetch($sql);</p>
<p> </p>
<p> preg_match($pattern, stripslashes(str_replace('&', '&', $result2['it_explan'])), $match); // 각 it_id에 등록된 상세설명에 등록된 이미지를 가져옴</p>
<p> $dataSrc = substr($match['url'], 1); // 옵션명과 동일한 제품의 상세이미지</p>
<p> </p>
<p> $str .= '<li class="sct_li col-row-5">';
$str .= '<a href="#dimmed" data-img_src="'.$dataSrc.'" class="dimmed">';
$str .= '<div class="sct_img">'.get_it_image($result2['it_id'], 650, 500, '', '', stripslashes($result2['it_name'])).'</div>'; // 옵션명과 동일한 제품의 썸네일
$str .= '<p class="sct_txt">등록된 옵션명 :
'.$row['io_id'].'</p>';
$str .= '<p class="sct_cost">등록된 옵션가격 :
'.number_format($row['io_price']).'원</p>';
$str .= '</a>';
$str .= '</li>';
}
$str .= '</ul></div></div>';</p>
<p> echo $str;
}
// 200409 프로모션 전제품출력 작업</p>
<p>
이런식으로 작업해서 구현을 시켜서 잘 됩니다...;;
궁금한건 제대로 짠게 맞는지... 더 보완해야할 부분이 있는지... 가 궁금합니다...;;
그리고 $sql 과 $result 와 $row 가
어떤 페이지는 한 페이지? 한 함수? 안에서 여러번 쓰이던데...
$sql ~~~
$result ~~~
$sql ~~~~
$result ~~~~
이런식으로 쓰이던데... 전 $result 를 2번 쓰면 안불러와지길래 $result2로 썼습니다...;;
다른거 찾아보는 거는 이런거 검색해보면 나오겠다 싶은데 개발쪽은 잘 모르다보니 뭐라 검색해야할지조차 막막해서 문의남겨봅니다;;ㅠㅠㅠ
답변을 작성하려면 로그인이 필요합니다.
로그인
위에 $result 했을때 결과값 과 아래 for문에서 $result 했을때 결과값이 다르지 않나요..??
위 result 는 item_option_table 의 데이터를 가져오고,
for문에서 result 는 item_table 에서의 데이터를 가져오는데...
결과값 중복이라는게... 어떤 경우인가요..??ㅠㅠㅠ
뭔가 알듯말듯 어렵네요...ㅎㅎㅎ 위에 구현해놓은것도... 혼자 짱구 굴려서 이렇게 가져오면 될 것 같은데? 하면서 눈치로 짜본거라... 제대로 된 로직인지도 의문이고...ㅠㅠㅠ