영카트 기본소스 orderform.php 문의
본문
안녕하세요
영카트 기본소스 orderform.php을 분석하다가 모르는 부분이 있어서
문의드립니다.
------------------------------------------
// $s_cart_id 로 현재 장바구니 자료 쿼리
$sql = " select a.ct_id,
a.it_id,
a.it_name,
a.ct_price,
a.ct_point,
a.ct_qty,
a.ct_status,
a.ct_send_cost,
a.it_sc_type,
b.ca_id,
b.ca_id2,
b.ca_id3,
b.it_notax
from {$g5['g5_shop_cart_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
where a.od_id = '$s_cart_id'
and a.ct_select = '1' ";
$sql .= " group by a.it_id ";
$sql .= " order by a.ct_id ";
$result = sql_query($sql);
------------------------------------------
질문 1)
{$g5['g5_shop_cart_table']} 이런식으로 중괄호가 쳐있는 소스는 경로가 어디인가요? 내장함수인거같은데..
질문 2)
select a.ct_id,
a.it_id,
a.it_name,
a.ct_price,
a.ct_point,
a.ct_qty,
a.ct_status,
a.ct_send_cost,
a.it_sc_type,
b.ca_id,
b.ca_id2,
b.ca_id3,
b.it_notax
from {$g5['g5_shop_cart_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
where a.od_id = '$s_cart_id'
위 쿼리문을 보고 이해가 안되는 부분이 있습니다.
책에서는 앞에 a,b 붙은게 한번에 여러 테이블로 쿼리문을 실행하기위해 만든 별칭이라고 하던데
이걸 쓰려면 "from 테이블 이름 as 별칭으로 쓸 이름"으로 정의를 먼저해줘야 된다고 나와있더라고요
그런데 저 쿼리문에서는 as는 보이지 않고 "테이블 이름 a left join 테이블 이름 b on (a.it_id = b.it_id) where a.od_id = '$s_cart_id'"라고 되있어서 제가 아직 모르는 부분이 있는건지 이해가 되지 않습니다.
좀 질문이 길지만 답변 좀 부탁드리겠습니다.
답변 2
1. 변수
{$g5['g5_shop_cart_table']} 은 변수입니다.
data/dbconfig.php 49라인 에 정의되어 있습니다.
2. 별칭
as를 써도되고 안써도 됩니다.
from {$g5['g5_shop_cart_table']} a
from {$g5['g5_shop_cart_table']} as a
같다는 거죠
{$g5['g5_shop_cart_table']} a
에서
{$g5['g5_shop_cart_table']} 이 변수가 테이블명이고
a 가 alias 입니다.