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

주문내역 리스트에서 엑셀다운 작업중인데요. 채택완료

뒷집돌쇠 9년 전 조회 5,431

편법으루다가 '준비' 상태에서 노출되는 '엑셀배송처리' 부분을 이용해서

'입금'과 '준비' 상태의 모든 주문내역을 출력하도록 작업중인데요.

 

기존 10개(10개였나 ㄷㄷㄷㄷ)에서 추가 구분을 넣어서 현재 엑셀 다운로드시

총 21개 구분의 내용이 출력되도록 설정했습니다.

(물론 이 파일 이대로 택배사,운송장번호 입력해서 업로드하면 일괄등록 되는걸로 ㄷㄷㄷㄷ)

 

요렇게 말이죠 ㅎㅎ


 

그런데 보시다시피 상품명,옵션,수량은 아무리 노력해도 출력이 안되네요 ㅠㅜ (2시간 넘게 삽질중)

 

줄 수가 많지 않으니 orderdeliveryexcel.php 파일의 내용을 보여드리자면

</p><p><?php</p><p>$sub_menu = '400400';</p><p>include_once('./_common.php');</p><p> </p><p>auth_check($auth[$sub_menu], "w");</p><p> </p><p>// 주문정보</p><p>$sql = " select *</p><p>            from {$g5['g5_shop_order_table']}</p><p>            where od_misu = '0'</p><p>              and od_status = ('준비'&&'입금')</p><p>            order by od_id desc ";</p><p>$result = sql_query($sql);</p><p> </p><p>if(!@sql_num_rows($result))</p><p>    alert_close('배송처리할 주문 내역이 없습니다.');</p><p> </p><p>/*================================================================================</p><p>php_writeexcel <a href="<a href="http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/" target="_blank" rel="noopener noreferrer">http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/</a>"><a href="http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/" target="_blank" rel="noopener noreferrer">http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/</a></a></p><p>=================================================================================*/</p><p> </p><p>include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_workbook.inc.php');</p><p>include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php');</p><p> </p><p>$fname = tempnam(G5_DATA_PATH, "tmp-deliverylist.xls");</p><p>$workbook = new writeexcel_workbook($fname);</p><p>$worksheet = $workbook->addworksheet();</p><p> </p><p> </p><p>// Put Excel data</p><p>$data = array('주문번호', '주문자명', '주문자전화1', '주문자전화2', '상품명', '선택옵션', '수량', '배송메시지', '수취인명', '수취인전화1', '수취인전화2', '우편번호', '배송지주소', '상품가격', '배송비', '포인트결재', '쿠폰결재', '실결제금액', '결제수단', '배송회사', '운송장번호');</p><p>$data = array_map('iconv_euckr', $data);</p><p> </p><p>$col = 0;</p><p>foreach($data as $cell) {</p><p>    $worksheet->write(0, $col++, $cell);</p><p>}</p><p> </p><p>for($i=1; $row=sql_fetch_array($result); $i++) {</p><p>    $row = array_map('iconv_euckr', $row);</p><p> </p><p>    $worksheet->write($i, 0, ' '.$row['od_id']);</p><p>    $worksheet->write($i, 1, $row['od_name']);</p><p>    $worksheet->write($i, 2, ' '.$row['od_tel']);</p><p>    $worksheet->write($i, 3, ' '.$row['od_hp']);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 4, ' '.$row['it_name']); //상품명</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 5, ' '.$row['ct_option']); //옵션</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 6, ' '.$row['ct_qty']); //수량</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 7, ' '.$row['od_memo']);</p><p>    $worksheet->write($i, 8, $row['od_b_name']);</p><p>    $worksheet->write($i, 9, ' '.$row['od_b_tel']);</p><p>    $worksheet->write($i, 10, ' '.$row['od_b_hp']);</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 11, ' '.$row['od_b_zip1'].$row['od_b_zip2']);</p><p>    $worksheet->write($i, 12, print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon']));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 13, ' '.number_format($row['od_cart_price']));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 14, ' '.number_format($row['od_send_cost']));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 15, ' '.number_format($row['od_receipt_point']));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 16, ' '.number_format($row['od_coupon']));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 17, ' '.number_format($row['od_receipt_price']));</p><p><span class="Apple-tab-span" style="white-space:pre">	</span>$worksheet->write($i, 18, ' '.$row['od_settle_case']);</p><p>    $worksheet->write($i, 19, $row['od_delivery_company']);</p><p>    $worksheet->write($i, 20, $row['od_invoice']);</p><p>}</p><p> </p><p>$workbook->close();</p><p> </p><p>header("Content-Type: application/x-msexcel; name=\"주문내역_".date("ymd", time()).".xls\"");</p><p>header("Content-Disposition: inline; filename=\"주문내역_".date("ymd", time()).".xls\"");</p><p>$fh=fopen($fname, "rb");</p><p>fpassthru($fh);</p><p>unlink($fname);</p><p>?></p><div><span style="font-size: 11pt;">
요렇게 되어있습니다.
문제의 상품명 출력부분은 당연히 상품명이니까 $row['it_name'] 하면 나올줄 알았더니 안나오고
옵션도 ct_option, 수량은 ct_qty 를 입력해도 출력이 안됩니다. ㅠㅠ
어디가 잘못된걸까요?
(해당 부분은 orderprintresult.php 파일을 토대로 작성했습니다.)
굇수님들의 속시원한 해결책을 간절히 기다려봅니다.
부탁드립니다. 넙죽~!! (__+
댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

for($i=1; $row=sql_fetch_array($result); $i++) { 

// 아래에 $od_Id 이용 장바구니 상품명 쿼리 후 관련 처리 추가 - 상황별 조건 변경 - 하나의 주문번호에 여러 상품 구매 가능하니  

$it_row = sql_fetch("select * from g5['g5_shop_cart_table']} where od_id = '{$row['od_id']}' and io_type = '0' order by ct_id asc limit 1)"; 

 echo $it_row['it_name'];

내용 추가 후 체크 해 보세요.

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

답변에 대한 댓글 1개

뒷집돌쇠
9년 전
상세한 설명 감사드립니다.
답변을 채 확인하기도 전에 다른 방법으로 해결했습니다. ^^

9라인의 쿼리문을 노가다로 처리했습니다. ㅎ

[code]
$sql = " SELECT a.od_id, od_b_zip1, od_b_zip2, od_b_addr1, od_b_addr2, od_b_addr3, od_b_addr_jibeon, od_b_name, od_b_tel, od_b_hp, od_tel, od_name, od_hp, od_cart_count, od_cart_price, od_send_cost, od_receipt_point, od_receipt_price, od_settle_case, od_delivery_company, od_invoice, b.it_name, ct_qty, b.it_id, a.od_id, od_memo, od_invoice, b.ct_option, b.ct_send_cost, b.it_sc_type
FROM {$g5['g5_shop_order_table']} a, {$g5['g5_shop_cart_table']} b
where (a.od_id = b.od_id) and (od_misu = '0')
and od_status = ('준비'&&'입금')
order by od_id desc ";
[/code]

orderprintresult.php 파일을 참조해서 일일히 각 테이블에 누락된 컬럼만 추가해서
출력에 성공했습니다. ㅎㅎ ^^ (다.. 단순한 뇌회전 ㅠㅜ)

이제 마지막 숙제는 배송사와 운송장 번호를 기록해서 업로드했을때 정상적으로 처리되느냐가
관건이네요. ㄷㄷㄷㄷㄷ

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

9행 sql ... 우선 확인

 

위 소스에서 $row는 order_table 주문정보만 담고 있음

상품명 등은 cart_table 에 있으니 od_id 이용 추가 쿼리 작성 필요 

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

답변에 대한 댓글 1개

뒷집돌쇠
9년 전
답변감사합니다. ㅎㅎ 저도 아침에 뭔잘못을 했나 하고 살펴보다가 맨위 쿼리문에서 order_table만 불러온걸 보게 되었습니다.
컬럼들을 찾아보니 상품명이나 옵션명은 안보이더라구요. (다행히 수량 컬럼은 찾아서 적용시켰더니 바로 되었습니다.)

당연히 cart_table 정보를 불러와야 it_name, ct_option의 컬럼내용이 출력이 된다는걸 알겠는데

위 쿼리문에서 어떻게 수정해야 cart_table을 불러올 수 있을까요 ㅠㅜ

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

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

로그인