채택완료

위시리스트 구별

2017-04-10 (월) 19:44:51 4,093

위시리스트에 있는 상품과 없는 상품을 구별하는 것을 다른 분이 만들어주셨는데요

function wish_icon($it)
{
    global $g5;
 
    $icon = '<span class="sit_icon">';
 
    // 위쉬
    $sql = " select a.wi_id, a.wi_time, b.* from {$g5['g5_shop_wish_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id ) where a.mb_id = '{$member['mb_id']}' order by a.wi_id desc";
 
    $row = sql_fetch($sql);
    if($row['it_id'])
        $icon .= '<img src="이미지">';
 
    $icon .= '</span>';
 
    return $icon;
}

동작을 안하네요 ㅠㅠ

if에 else를 붙이면 모든 상품에 표시가 되는데 

|

답변 3개 / 댓글 1개

채택된 답변
+20 포인트

작동을 하더라도 위 소스코드는  리스트에 20개의 상품이 있으면 20번 쿼리를 해야하니 바람직한 방법은 아닙니다 

2017-04-11 (화) 09:12:32

균이님 그럼 코드 몇줄만 살짝 보여주시면 감사하겠습니다.

한수 좀 부탁드립니다.

답변에 대한 댓글 1개

위시리스트 목록이 아주 많은 것이 아니므로 아래와 같이 한번만 쿼리하면 됩니다

$qq=sql_query("select it_id from {$g5['g5_shop_wish_table']} where mb_id = '{$member['mb_id']}' ");
$wishArr=array();
while($row=sql_fetch_array($qq)) $wishArr[]=$row[it_id];


출력할 곳 (for문 아래쪽)
<?php if (in_array($row['it_id'], $wishArr)) echo "<위시>"; ?>

 $sql = " select a.wi_id, a.wi_time, b.* from {$g5['g5_shop_wish_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id ) where a.mb_id = '{$member['mb_id']}' order by a.wi_id desc"; 

쿼리부분을 echo 해서 쿼리부터 확인하세여

쿼리찍어서 값이 나오는지부터 확인하는게 맞을거같아여

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