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

상품 정렬 질문입니다~ 채택완료

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&amp;sortodr=desc" class="btn01">판매많은순</a></li></p><p>        <li><a href="<?php echo $sct_sort_href; ?>it_price&amp;sortodr=asc" class="btn01">낮은가격순</a></li></p><p>        <li><a href="<?php echo $sct_sort_href; ?>it_price&amp;sortodr=desc" class="btn01">높은가격순</a></li></p><p>        <li><a href="<?php echo $sct_sort_href; ?>it_use_cnt&amp;sortodr=desc" class="btn01">후기많은순</a></li></p><p>    </ul></p><p>

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

답변 2개

채택된 답변
+20 포인트
잉끼s
8년 전

영카트가 상품 전체 목록을 지원하나요?

아마 커스텀 하신 것 같은데 상품을 가져오는 쿼리문을 확인해봐야 할 것 같습니다. 

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

답변에 대한 댓글 5개

l
lacomparte
8년 전
실제 주문건수랑 비교하니
주문건수가 많은 상품일 수록 먼저 출력이 되는것 같네요;
구매후기가 많건 적건요 ㅠㅠ
잉끼다
8년 전
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\">&lt;".stripslashes($row['it_id'])."&gt;</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(); 있는 부분이요.
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&amp;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 .='&amp;sort='.$sort.'&amp;sortodr='.$sortodr;
echo get_paging($config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr1.'&amp;page=');
?>


[/code]

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

8년 전

sortodr=desc 이 부분을 보세요..
여기서 desc 또는 asc 에 따라 정렬방식이 바뀝니다.

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

답변에 대한 댓글 1개

l
lacomparte
8년 전
DESC가 내림차순이고
ASC가 오름차순인데

DESC니 내림차순 아닌가요!?
그러니 후기 많은순 부터 출력되는게 정상인데..

DESC, ASC는 알고 있습니다.

다만 제대로 동작하지 않는다는 질문이예요

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

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

로그인