연우, 장을 열다.





파일이나 폴더에 우클릭해서 team 메뉴를 보면 SVN에 있는 파일과 송수신할 수 있다. 


commit : 내 로컬컴의 소스를 svn에 올린다.

update : svn의 파일을 내 로컬컴으로 소스를 받는다.

revert  : svn의 소스로 내 로컬컴의 소스를 교체한다.

synchronize with Repostitory : svn의 소스와 내 로컬컴의 소스를 비교한다.


이정도만 알아도 상사에게 욕 덜먹습니다.... ㅋㅋㅋㅋ


자바스크립트도로 쿠키를 제어할 수 있는줄 몰랐는데 찾아보니까 소스가 존재했습니다. 

하단에 나와있는  아이디 mainInfoLayer  이것이 팝업소스이고, 이것을 쿠키처리해 팝업을 작성했습니다. 


사용원하시는 분들 잘 활용하시길 바랍니다. :) 



<!-- 팝업 시작-->

<style>

map area:focus, map area:active {outline: none; border:0; }

</style>

<div style="position:absolute; margin:auto; width:512px; height:636px;; top:132px; left:215px; background:white;border:1px solid #000;display:none;" id="mainInfoLayer">

<div class="scroll_box_pure" style="overflow:hidden;">

<div class="popUpWrap" style="width:512px;height:100%; padding:0 !important;">

<!-- <img src="/resource/img/popup/seller_ingel_noti.jpg" /> -->

<img src="/resource/img/popup/seller_ginseng_noti.jpg" alt="2018년 설 기획 상품 셀러모집" usemap="#Map" hidefocus="true" />

<map name="Map" id="Map">

    <area alt="하루동안보지않기" title="하루동안보지않기" id="mapAr1" href="#" shape="poly" coords="1,615,140,616,141,633,3,634" />

    <area alt="팝업닫기" title="팝업닫기" id="mapAr2" href="#" shape="poly" coords="489,615,512,615,512,634,489,635" />

    <area alt="" id="mapAr3" title="" href="#" shape="poly" coords="49,447,151,447,163,459,164,465,163,472,159,477,153,482,150,485,49,485,44,482,40,476,37,470,36,462,40,454" />

</map>

<img src="/resource/img/popup/seller_ginseng_noti_close.jpg" alt="닫기버튼" id="ginseng_close" style="position:absolute;left:0px;bottom:0px;display:none;"/>

</div>

</div>

</div>

<script>

function setCookie(name, value, hours){

if(hours){

var date = new Date();

        date.setTime(date.getTime()+(hours*60*60*1000));

        var expires = "; expires="+date.toGMTString();

}

    document.cookie=name + "=" + escape(value) + "; path=/"+expires+";"

}

function openPop(){

     if(getCookie("mainpop")!="closepop"){

    $("#mainInfoLayer").show();

     }

}

function getCookie(name){

    var nameOfCookie = name + "=";24*60*60/24/12

    var x =0;

    while (x<=document.cookie.length){

        var y = (x+nameOfCookie.length);

        if(document.cookie.substring(x,y) == nameOfCookie){

            if((endOfCookie=document.cookie.indexOf(";",y))==-1)

                endOfCookie = document.cookie.length;

            return unescape(document.cookie.substring(y, endOfCookie));

            }

            x=document.cookie.indexOf(" ",x) +1;

            if(x==0)

            break;

            }

        return "";

}

openPop();

$(function(){

console.log();

$("#mapAr1").on("click", function(){

if(!$("#ginseng_close").hasClass("clicked")){

$("#ginseng_close").show();

$("#ginseng_close").addClass("clicked");

}else{

$("#ginseng_close").hide();

$("#ginseng_close").removeClass("clicked");

}

});

$("#ginseng_close").on("click", function(){

if(!$("#ginseng_close").hasClass("clicked")){

$("#ginseng_close").show();

$("#ginseng_close").addClass("clicked");

}else{

$("#ginseng_close").hide();

$("#ginseng_close").removeClass("clicked");

}

});

$("#mapAr2").on("click", function(){

$("#mainInfoLayer").hide("500");

if($("#ginseng_close").hasClass("clicked")){

//cookie start

setCookie("mainpop","closepop","24");

}

});

});

</script>

<!--팝업  끝  -->


만약 이미지 맵을 따서, 작업하다가 이미지 맵 라인을 지우고 싶다면 아래 글도 보고 오십시오! 진짜 유용할겁니다. ^^


쿼리문은 아래와 같다. 


select 

a. product_code as product_code, 

c.head_code as head_code,

(

select rt_flag from marketprd_return_list where product_code=a.product_code and a.org_marketprd_idx='test1234'

) as rt_flag,

a.as_info as asDetail,

a.rex_info as rtngExchDetail,

'02' as dlvClf,

c.weight as prdWght,

IF(c.head_code='02' && c.center_code='A','03','01')as orgnTypCd,

a.deli_cost as dlvCst1,

a.prd_noti_type as prd_noti_type

 from

 marketprd_header_list a, 

 marketprd_return_list b,

 product_list c 

 where 

a.org_marketprd_idx = b.org_marketprd_idx 

and a.product_code=c.product_code 

and a.org_marketprd_idx='test1234' 

and b.rt_flag in('0','')  group by a.product_code order by a.order_no; 


에러가 났던 지점은 위 굵은 글씨다. 


select rt_flag from marketprd_return_list where product_code=a.product_code and a.org_marketprd_idx='test1234'


테이블 marketprd_return_list 에서는 컬럼 product_code와 org_marketprd_idx가 존재한다. 하지만 .. 위 쿼리에서는 

에러 " SQL 오류 (1242): Subquery returns more than 1 row " 가 뜬다. 


에러 문구의 뜻은 서브 쿼리에 1개 로우 이상이 조회가 된다는 뜻이다. 


왜인지 고민하다가 찾은 답은 




서브쿼리인 select rt_flag from marketprd_return_list where product_code=a.product_code and a.org_marketprd_idx='test1234' 이곳에서는 a.org_marketprd_idx가 무엇인지 모른다.. 심지어 


A='' 라고 했을때 좌항에 있는 A 컬럼은 테이블 marketprd_return_list 여야 하는데 컬럼을 다른 테이블 a 에서 요청해서 에러가 떴던 부분이다. 


결론적으로는... 




select 

 a. product_code as product_code, 

 c.head_code as head_code,

(

 select rt_flag from marketprd_return_list where product_code=a.product_code and org_marketprd_idx=a.org_marketprd_idx 

) as rt_flag,

 a.as_info as asDetail,

 a.rex_info as rtngExchDetail,

 '02' as dlvClf,

 c.weight as prdWght,

 IF(c.head_code='02' && c.center_code='A','03','01')as orgnTypCd,

 a.deli_cost as dlvCst1,

 a.prd_noti_type as prd_noti_type

 from

 marketprd_header_list a, 

 marketprd_return_list b,

 product_list c 

 where 

 a.org_marketprd_idx = b.org_marketprd_idx 

 and a.product_code=c.product_code 

 and a.org_marketprd_idx='test1234' 

 and b.rt_flag in('0','')    group by a.product_code order by a.order_no; 


위 처럼 조회하니, 원하는 결과값이 도출됐다.




여기서 얻을 결론은 조인하여 서브쿼리를 조회해올때에는 A=B 라고 지칭하면, A에 해당하는 좌항은 서브 쿼리의 테이블이어야 한다는 점이다.