제품상세페이지 커스텀(?) 관련해서 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 에서 상품 상세설명에 들어간 작업
// 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);
$pattern = "/<img.*?src=[\"']?(?P<url>[^(http)].*?)[\"' >]/i"; // img 정규식?
$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++){ // 등록된 옵션의 개수만큼 가져옴
$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);
preg_match($pattern, stripslashes(str_replace('&', '&', $result2['it_explan'])), $match); // 각 it_id에 등록된 상세설명에 등록된 이미지를 가져옴
$dataSrc = substr($match['url'], 1); // 옵션명과 동일한 제품의 상세이미지
$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">등록된 옵션명 : <br>'.$row['io_id'].'</p>';
$str .= '<p class="sct_cost">등록된 옵션가격 : <br>'.number_format($row['io_price']).'원</p>';
$str .= '</a>';
$str .= '</li>';
}
$str .= '</ul></div></div>';
echo $str;
}
// 200409 프로모션 전제품출력 작업
이런식으로 작업해서 구현을 시켜서 잘 됩니다...;;
궁금한건 제대로 짠게 맞는지... 더 보완해야할 부분이 있는지... 가 궁금합니다...;;
그리고 $sql 과 $result 와 $row 가
어떤 페이지는 한 페이지? 한 함수? 안에서 여러번 쓰이던데...
$sql ~~~
$result ~~~
$sql ~~~~
$result ~~~~
이런식으로 쓰이던데... 전 $result 를 2번 쓰면 안불러와지길래 $result2로 썼습니다...;;
다른거 찾아보는 거는 이런거 검색해보면 나오겠다 싶은데 개발쪽은 잘 모르다보니 뭐라 검색해야할지조차 막막해서 문의남겨봅니다;;ㅠㅠㅠ
!-->답변 3
결과값 중복이 될경우는
$sql
2 이런식으로 하면 되시구요 그렇치 않으면 굳이 전부 다르게 하실 필요는 없습니다.
preg_match 뭔가를 정의하신거 같은데 뭔가 빠지거나 필요가 없을듯 싶네요
$상품내용 = preg_match
이런식으로 사용이 되야 하는데 지금은 그냥 암것도 정의가 없네요.