상품 정렬 질문입니다~ 채택완료
lacomparte
8년 전
조회 6,380
상품 전체목록에서
판매많은순 낮은가격순 높은가격순 후기많은순 빼고 나머지는 삭제했습니다.
근데 후기많은순으로 정렬하게 되면 정확한 정렬이 안됩니다.
후기가 하나도 없는게 제일 먼저 오네요 ㅠ
소스쪽 건드린건 하나도 없는데
참 이상하네요 ㅠ
DB가 꼬인걸까요?
근데 DB쪽 봐도 정렬결과가 이상한건 매한가지인데ㅠ
어디를 손봐야 할까요?
</p><p><ul id="ssch_sort"></p><p> <li><a href="<?php echo $sct_sort_href; ?>it_sum_qty&sortodr=desc" class="btn01">판매많은순</a></li></p><p> <li><a href="<?php echo $sct_sort_href; ?>it_price&sortodr=asc" class="btn01">낮은가격순</a></li></p><p> <li><a href="<?php echo $sct_sort_href; ?>it_price&sortodr=desc" class="btn01">높은가격순</a></li></p><p> <li><a href="<?php echo $sct_sort_href; ?>it_use_cnt&sortodr=desc" class="btn01">후기많은순</a></li></p><p> </ul></p><p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
답변에 대한 댓글 5개
l
lacomparte
8년 전
�
잉끼다
8년 전
list 를 가져오는 부분의 소스를 공개해주세요. 위 버튼이 문제가 아니라
item_list 쪽이 문제인 것으로 보입니다.
item_list 쪽이 문제인 것으로 보입니다.
l
lacomparte
8년 전
전체상품 - 상품군1
- 상품군2
- 상품군3
ca_id = 10
ca_id = 1010
ca_id = 1020
ca_id = 1030
입니다~
근데 지금 영카트 데모 사이트도 보니
후기많은순이 제대로 동작하지 않는것 같은데요;;
[code]
// list.10.skin.php 파일에서 가져옵니다~
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
// 중복으로 호출시 G5_SHOP_CSS_URL이 변수명으로 출력됨 따라서, 주석처리함 add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);
?>
<!-- 상품진열 10 시작 { -->
<?php
for ($i=1; $row=sql_fetch_array($result); $i++) {
if ($this->list_mod >= 2) { // 1줄 이미지 : 2개 이상
if ($i%$this->list_mod == 0) $sct_last = ' sct_last'; // 줄 마지막
else if ($i%$this->list_mod == 1) $sct_last = ' sct_clear'; // 줄 첫번째
else $sct_last = '';
} else { // 1줄 이미지 : 1개
$sct_last = ' sct_clear';
}
if ($i == 1) {
if ($this->css) {
echo "<ul class=\"{$this->css}\">\n";
} else {
echo "<ul class=\"sct sct_10\">\n";
}
}
echo "<li class=\"sct_li{$sct_last}\">\n";
if ($this->href) {
echo "<div class=\"sct_img\"><a href=\"{$this->href}{$row['it_id']}\" class=\"sct_a\">\n";
}
if ($this->view_it_img) {
echo get_it_image($row['it_id'], $this->img_width, $this->img_height, '', '', stripslashes($row['it_name']))."\n";
}
if ($this->href) {
echo "</a></div>\n";
}
if ($this->view_it_icon) {
echo "<div class=\"sct_icon\">".item_icon($row)."</div>\n";
}
// echo "<div class=\"sct_quick\">\n";
// echo "<a href=\"{$this->href}{$row['it_id']}\"><img src=\"".G5_SHOP_URL."/img/btn_view.gif\"><span class=\"sound_only\">상세페이지 보기</span></a>";
// echo "<a href=\"javascript:item_wish(document.fitem,'";
// echo $row['it_id'];
// echo "');\" class=\"btn_wish\"><img src=\"".G5_SHOP_URL."/img/btn_wish.gif\"><span class=\"sound_only\">위시리스트에 담기</span></a>";
// echo "</div>\n";
if ($this->view_it_id) {
echo "<div class=\"sct_id\"><".stripslashes($row['it_id'])."></div>\n";
}
if ($this->href) {
echo "<div class=\"sct_txt sound_only\"><a href=\"{$this->href}{$row['it_id']}\" class=\"sct_a\">\n";
}
if ($this->view_it_name) {
echo stripslashes($row['it_name'])."\n";
}
if ($this->href) {
echo "</a></div>\n";
}
if ($this->view_it_basic && $row['it_basic']) {
echo "<div class=\"sct_basic\">".stripslashes($row['it_basic'])."</div>\n";
}
if ($this->view_it_cust_price || $this->view_it_price) {
echo "<div class=\"sct_cost\">\n";
if ($this->view_it_cust_price && $row['it_cust_price']) {
echo "<p><span class=\"sct_c_cost\">소비자가격<span class=\"sct_vat\">(VAT포함)</span></span><del>".display_price($row['it_cust_price'])."</del></p>\n";
}
if ($this->view_it_price) {
echo "<p><span class=\"sct_d_cost\">할인가격<span class=\"sct_vat\">(VAT포함)</span></span><strong>".display_price(get_price($row), $row['it_tel_inq'])."</strong></p>\n";
}
echo "</div>\n";
}
/*
if ($this->view_sns) {
$sns_top = $this->img_height + 10;
$sns_url = G5_SHOP_URL.'/item.php?it_id='.$row['it_id'];
$sns_title = get_text($row['it_name']).' | '.get_text($config['cf_title']);
echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_fb_s.gif');
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_twt_s.gif');
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_goo_s.gif');
echo "</div>\n";
}
*/
echo "</li>\n";
}
if ($i > 1) echo "</ul>\n";
if($i == 1) echo "<p class=\"sct_noitem\">등록된 상품이 없습니다.</p>\n";
?>
[/code]
- 상품군2
- 상품군3
ca_id = 10
ca_id = 1010
ca_id = 1020
ca_id = 1030
입니다~
근데 지금 영카트 데모 사이트도 보니
후기많은순이 제대로 동작하지 않는것 같은데요;;
[code]
// list.10.skin.php 파일에서 가져옵니다~
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
// 중복으로 호출시 G5_SHOP_CSS_URL이 변수명으로 출력됨 따라서, 주석처리함 add_stylesheet('<link rel="stylesheet" href="'.G5_SHOP_CSS_URL.'/style.css">', 0);
?>
<!-- 상품진열 10 시작 { -->
<?php
for ($i=1; $row=sql_fetch_array($result); $i++) {
if ($this->list_mod >= 2) { // 1줄 이미지 : 2개 이상
if ($i%$this->list_mod == 0) $sct_last = ' sct_last'; // 줄 마지막
else if ($i%$this->list_mod == 1) $sct_last = ' sct_clear'; // 줄 첫번째
else $sct_last = '';
} else { // 1줄 이미지 : 1개
$sct_last = ' sct_clear';
}
if ($i == 1) {
if ($this->css) {
echo "<ul class=\"{$this->css}\">\n";
} else {
echo "<ul class=\"sct sct_10\">\n";
}
}
echo "<li class=\"sct_li{$sct_last}\">\n";
if ($this->href) {
echo "<div class=\"sct_img\"><a href=\"{$this->href}{$row['it_id']}\" class=\"sct_a\">\n";
}
if ($this->view_it_img) {
echo get_it_image($row['it_id'], $this->img_width, $this->img_height, '', '', stripslashes($row['it_name']))."\n";
}
if ($this->href) {
echo "</a></div>\n";
}
if ($this->view_it_icon) {
echo "<div class=\"sct_icon\">".item_icon($row)."</div>\n";
}
// echo "<div class=\"sct_quick\">\n";
// echo "<a href=\"{$this->href}{$row['it_id']}\"><img src=\"".G5_SHOP_URL."/img/btn_view.gif\"><span class=\"sound_only\">상세페이지 보기</span></a>";
// echo "<a href=\"javascript:item_wish(document.fitem,'";
// echo $row['it_id'];
// echo "');\" class=\"btn_wish\"><img src=\"".G5_SHOP_URL."/img/btn_wish.gif\"><span class=\"sound_only\">위시리스트에 담기</span></a>";
// echo "</div>\n";
if ($this->view_it_id) {
echo "<div class=\"sct_id\"><".stripslashes($row['it_id'])."></div>\n";
}
if ($this->href) {
echo "<div class=\"sct_txt sound_only\"><a href=\"{$this->href}{$row['it_id']}\" class=\"sct_a\">\n";
}
if ($this->view_it_name) {
echo stripslashes($row['it_name'])."\n";
}
if ($this->href) {
echo "</a></div>\n";
}
if ($this->view_it_basic && $row['it_basic']) {
echo "<div class=\"sct_basic\">".stripslashes($row['it_basic'])."</div>\n";
}
if ($this->view_it_cust_price || $this->view_it_price) {
echo "<div class=\"sct_cost\">\n";
if ($this->view_it_cust_price && $row['it_cust_price']) {
echo "<p><span class=\"sct_c_cost\">소비자가격<span class=\"sct_vat\">(VAT포함)</span></span><del>".display_price($row['it_cust_price'])."</del></p>\n";
}
if ($this->view_it_price) {
echo "<p><span class=\"sct_d_cost\">할인가격<span class=\"sct_vat\">(VAT포함)</span></span><strong>".display_price(get_price($row), $row['it_tel_inq'])."</strong></p>\n";
}
echo "</div>\n";
}
/*
if ($this->view_sns) {
$sns_top = $this->img_height + 10;
$sns_url = G5_SHOP_URL.'/item.php?it_id='.$row['it_id'];
$sns_title = get_text($row['it_name']).' | '.get_text($config['cf_title']);
echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_fb_s.gif');
echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_twt_s.gif');
echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_goo_s.gif');
echo "</div>\n";
}
*/
echo "</li>\n";
}
if ($i > 1) echo "</ul>\n";
if($i == 1) echo "<p class=\"sct_noitem\">등록된 상품이 없습니다.</p>\n";
?>
[/code]
�
잉끼다
8년 전
이부분 말고요.
$list->run(); 있는 부분이요.
$list->run(); 있는 부분이요.
l
lacomparte
8년 전
run 부분이면..
list.php같은데요..;
[code]
<?php
include_once('./_common.php');
if (G5_IS_MOBILE) {
include_once(G5_MSHOP_PATH.'/list.php');
return;
}
$sql = " SELECT * FROM {$g5['g5_shop_category_table']} WHERE ca_id = '$ca_id' AND ca_use = '1' ";
$ca = sql_fetch($sql);
if (!$ca['ca_id'])
alert('등록된 분류가 없습니다.');
// 테마미리보기 스킨 등의 변수 재설정
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true) {
$ca['ca_skin'] = (isset($tconfig['ca_skin']) && $tconfig['ca_skin']) ? $tconfig['ca_skin'] : $ca['ca_skin'];
$ca['ca_img_width'] = (isset($tconfig['ca_img_width']) && $tconfig['ca_img_width']) ? $tconfig['ca_img_width'] : $ca['ca_img_width'];
$ca['ca_img_height'] = (isset($tconfig['ca_img_height']) && $tconfig['ca_img_height']) ? $tconfig['ca_img_height'] : $ca['ca_img_height'];
$ca['ca_list_mod'] = (isset($tconfig['ca_list_mod']) && $tconfig['ca_list_mod']) ? $tconfig['ca_list_mod'] : $ca['ca_list_mod'];
$ca['ca_list_row'] = (isset($tconfig['ca_list_row']) && $tconfig['ca_list_row']) ? $tconfig['ca_list_row'] : $ca['ca_list_row'];
}
// 본인인증, 성인인증체크
if(!$is_admin) {
$msg = shop_member_cert_check($ca_id, 'list');
if($msg)
alert($msg, G5_SHOP_URL);
}
$g5['title'] = $ca['ca_name'].' 상품리스트';
if ($ca['ca_include_head'])
@include_once($ca['ca_include_head']);
else
include_once(G5_SHOP_PATH.'/_head.php');
// 스킨경로
$skin_dir = G5_SHOP_SKIN_PATH;
if($ca['ca_skin_dir']) {
if(preg_match('#^theme/(.+)$#', $ca['ca_skin_dir'], $match))
$skin_dir = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1];
else
$skin_dir = G5_PATH.'/'.G5_SKIN_DIR.'/shop/'.$ca['ca_skin_dir'];
if(is_dir($skin_dir)) {
$skin_file = $skin_dir.'/'.$ca['ca_skin'];
if(!is_file($skin_file))
$skin_dir = G5_SHOP_SKIN_PATH;
} else {
$skin_dir = G5_SHOP_SKIN_PATH;
}
}
define('G5_SHOP_CSS_URL', str_replace(G5_PATH, G5_URL, $skin_dir));
if ($is_admin)
echo '<div class="sct_admin"><a href="'.G5_ADMIN_URL.'/shop_admin/categoryform.php?w=u&ca_id='.$ca_id.'" class="btn_admin">분류 관리</a></div>';
?>
<script>
var itemlist_ca_id = "<?php echo $ca_id; ?>";
</script>
<script src="<?php echo G5_JS_URL; ?>/shop.list.js"></script>
<!-- 상품 목록 시작 { -->
<div id="sct">
<?php
$nav_skin = $skin_dir.'/navigation.skin.php';
if(!is_file($nav_skin))
$nav_skin = G5_SHOP_SKIN_PATH.'/navigation.skin.php';
include $nav_skin;
// 상단 HTML
echo '<div id="sct_hhtml">'.conv_content($ca['ca_head_html'], 1).'</div>';
$cate_skin = $skin_dir.'/listcategory.skin.php';
if(!is_file($cate_skin))
$cate_skin = G5_SHOP_SKIN_PATH.'/listcategory.skin.php';
include $cate_skin;
// 상품 출력순서가 있다면
if ($sort != "")
$order_by = $sort.' '.$sortodr.' , it_order, it_id desc';
else
$order_by = 'it_order, it_id desc';
$error = '<p class="sct_noitem">등록된 상품이 없습니다.</p>';
// 리스트 스킨
$skin_file = $skin_dir.'/'.$ca['ca_skin'];
if (file_exists($skin_file)) {
echo '<div id="sct_sortlst">';
$sort_skin = $skin_dir.'/list.sort.skin.php';
if(!is_file($sort_skin))
$sort_skin = G5_SHOP_SKIN_PATH.'/list.sort.skin.php';
include $sort_skin;
// 상품 보기 타입 변경 버튼
// $sub_skin = $skin_dir.'/list.sub.skin.php';
// if(!is_file($sub_skin))
// $sub_skin = G5_SHOP_SKIN_PATH.'/list.sub.skin.php';
// include $sub_skin;
echo '</div>';
// 총몇개 = 한줄에 몇개 * 몇줄
$items = $ca['ca_list_mod'] * $ca['ca_list_row'];
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page < 1) $page = 1;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
$list = new item_list($skin_file, $ca['ca_list_mod'], $ca['ca_list_row'], $ca['ca_img_width'], $ca['ca_img_height']);
$list->set_category($ca['ca_id'], 1);
$list->set_category($ca['ca_id'], 2);
$list->set_category($ca['ca_id'], 3);
$list->set_is_page(true);
$list->set_order_by($order_by);
$list->set_from_record($from_record);
$list->set_view('it_img', true);
$list->set_view('it_id', false);
$list->set_view('it_name', true);
$list->set_view('it_basic', false);
$list->set_view('it_cust_price', true);
$list->set_view('it_price', true);
$list->set_view('it_icon', true);
$list->set_view('sns', true);
echo $list->run();
// where 된 전체 상품수
$total_count = $list->total_count;
// 전체 페이지 계산
$total_page = ceil($total_count / $items);
}
else
{
echo '<div class="sct_nofile">'.str_replace(G5_PATH.'/', '', $skin_file).' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
}
?>
<?php
$qstr1 .= 'ca_id='.$ca_id;
$qstr1 .='&sort='.$sort.'&sortodr='.$sortodr;
echo get_paging($config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr1.'&page=');
?>
[/code]
list.php같은데요..;
[code]
<?php
include_once('./_common.php');
if (G5_IS_MOBILE) {
include_once(G5_MSHOP_PATH.'/list.php');
return;
}
$sql = " SELECT * FROM {$g5['g5_shop_category_table']} WHERE ca_id = '$ca_id' AND ca_use = '1' ";
$ca = sql_fetch($sql);
if (!$ca['ca_id'])
alert('등록된 분류가 없습니다.');
// 테마미리보기 스킨 등의 변수 재설정
if(defined('_THEME_PREVIEW_') && _THEME_PREVIEW_ === true) {
$ca['ca_skin'] = (isset($tconfig['ca_skin']) && $tconfig['ca_skin']) ? $tconfig['ca_skin'] : $ca['ca_skin'];
$ca['ca_img_width'] = (isset($tconfig['ca_img_width']) && $tconfig['ca_img_width']) ? $tconfig['ca_img_width'] : $ca['ca_img_width'];
$ca['ca_img_height'] = (isset($tconfig['ca_img_height']) && $tconfig['ca_img_height']) ? $tconfig['ca_img_height'] : $ca['ca_img_height'];
$ca['ca_list_mod'] = (isset($tconfig['ca_list_mod']) && $tconfig['ca_list_mod']) ? $tconfig['ca_list_mod'] : $ca['ca_list_mod'];
$ca['ca_list_row'] = (isset($tconfig['ca_list_row']) && $tconfig['ca_list_row']) ? $tconfig['ca_list_row'] : $ca['ca_list_row'];
}
// 본인인증, 성인인증체크
if(!$is_admin) {
$msg = shop_member_cert_check($ca_id, 'list');
if($msg)
alert($msg, G5_SHOP_URL);
}
$g5['title'] = $ca['ca_name'].' 상품리스트';
if ($ca['ca_include_head'])
@include_once($ca['ca_include_head']);
else
include_once(G5_SHOP_PATH.'/_head.php');
// 스킨경로
$skin_dir = G5_SHOP_SKIN_PATH;
if($ca['ca_skin_dir']) {
if(preg_match('#^theme/(.+)$#', $ca['ca_skin_dir'], $match))
$skin_dir = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1];
else
$skin_dir = G5_PATH.'/'.G5_SKIN_DIR.'/shop/'.$ca['ca_skin_dir'];
if(is_dir($skin_dir)) {
$skin_file = $skin_dir.'/'.$ca['ca_skin'];
if(!is_file($skin_file))
$skin_dir = G5_SHOP_SKIN_PATH;
} else {
$skin_dir = G5_SHOP_SKIN_PATH;
}
}
define('G5_SHOP_CSS_URL', str_replace(G5_PATH, G5_URL, $skin_dir));
if ($is_admin)
echo '<div class="sct_admin"><a href="'.G5_ADMIN_URL.'/shop_admin/categoryform.php?w=u&ca_id='.$ca_id.'" class="btn_admin">분류 관리</a></div>';
?>
<script>
var itemlist_ca_id = "<?php echo $ca_id; ?>";
</script>
<script src="<?php echo G5_JS_URL; ?>/shop.list.js"></script>
<!-- 상품 목록 시작 { -->
<div id="sct">
<?php
$nav_skin = $skin_dir.'/navigation.skin.php';
if(!is_file($nav_skin))
$nav_skin = G5_SHOP_SKIN_PATH.'/navigation.skin.php';
include $nav_skin;
// 상단 HTML
echo '<div id="sct_hhtml">'.conv_content($ca['ca_head_html'], 1).'</div>';
$cate_skin = $skin_dir.'/listcategory.skin.php';
if(!is_file($cate_skin))
$cate_skin = G5_SHOP_SKIN_PATH.'/listcategory.skin.php';
include $cate_skin;
// 상품 출력순서가 있다면
if ($sort != "")
$order_by = $sort.' '.$sortodr.' , it_order, it_id desc';
else
$order_by = 'it_order, it_id desc';
$error = '<p class="sct_noitem">등록된 상품이 없습니다.</p>';
// 리스트 스킨
$skin_file = $skin_dir.'/'.$ca['ca_skin'];
if (file_exists($skin_file)) {
echo '<div id="sct_sortlst">';
$sort_skin = $skin_dir.'/list.sort.skin.php';
if(!is_file($sort_skin))
$sort_skin = G5_SHOP_SKIN_PATH.'/list.sort.skin.php';
include $sort_skin;
// 상품 보기 타입 변경 버튼
// $sub_skin = $skin_dir.'/list.sub.skin.php';
// if(!is_file($sub_skin))
// $sub_skin = G5_SHOP_SKIN_PATH.'/list.sub.skin.php';
// include $sub_skin;
echo '</div>';
// 총몇개 = 한줄에 몇개 * 몇줄
$items = $ca['ca_list_mod'] * $ca['ca_list_row'];
// 페이지가 없으면 첫 페이지 (1 페이지)
if ($page < 1) $page = 1;
// 시작 레코드 구함
$from_record = ($page - 1) * $items;
$list = new item_list($skin_file, $ca['ca_list_mod'], $ca['ca_list_row'], $ca['ca_img_width'], $ca['ca_img_height']);
$list->set_category($ca['ca_id'], 1);
$list->set_category($ca['ca_id'], 2);
$list->set_category($ca['ca_id'], 3);
$list->set_is_page(true);
$list->set_order_by($order_by);
$list->set_from_record($from_record);
$list->set_view('it_img', true);
$list->set_view('it_id', false);
$list->set_view('it_name', true);
$list->set_view('it_basic', false);
$list->set_view('it_cust_price', true);
$list->set_view('it_price', true);
$list->set_view('it_icon', true);
$list->set_view('sns', true);
echo $list->run();
// where 된 전체 상품수
$total_count = $list->total_count;
// 전체 페이지 계산
$total_page = ceil($total_count / $items);
}
else
{
echo '<div class="sct_nofile">'.str_replace(G5_PATH.'/', '', $skin_file).' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
}
?>
<?php
$qstr1 .= 'ca_id='.$ca_id;
$qstr1 .='&sort='.$sort.'&sortodr='.$sortodr;
echo get_paging($config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr1.'&page=');
?>
[/code]
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
주문건수가 많은 상품일 수록 먼저 출력이 되는것 같네요;
구매후기가 많건 적건요 ㅠㅠ