주문내역 리스트에서 엑셀다운 작업중인데요.
본문
편법으루다가 '준비' 상태에서 노출되는 '엑셀배송처리' 부분을 이용해서
'입금'과 '준비' 상태의 모든 주문내역을 출력하도록 작업중인데요.
기존 10개(10개였나 ㄷㄷㄷㄷ)에서 추가 구분을 넣어서 현재 엑셀 다운로드시
총 21개 구분의 내용이 출력되도록 설정했습니다.
(물론 이 파일 이대로 택배사,운송장번호 입력해서 업로드하면 일괄등록 되는걸로 ㄷㄷㄷㄷ)
요렇게 말이죠 ㅎㅎ
그런데 보시다시피 상품명,옵션,수량은 아무리 노력해도 출력이 안되네요 ㅠㅜ (2시간 넘게 삽질중)
줄 수가 많지 않으니 orderdeliveryexcel.php 파일의 내용을 보여드리자면
<?php
$sub_menu = '400400';
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
// 주문정보
$sql = " select *
from {$g5['g5_shop_order_table']}
where od_misu = '0'
and od_status = ('준비'&&'입금')
order by od_id desc ";
$result = sql_query($sql);
if(!@sql_num_rows($result))
alert_close('배송처리할 주문 내역이 없습니다.');
/*================================================================================
php_writeexcel http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/
=================================================================================*/
include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_workbook.inc.php');
include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php');
$fname = tempnam(G5_DATA_PATH, "tmp-deliverylist.xls");
$workbook = new writeexcel_workbook($fname);
$worksheet = $workbook->addworksheet();
// Put Excel data
$data = array('주문번호', '주문자명', '주문자전화1', '주문자전화2', '상품명', '선택옵션', '수량', '배송메시지', '수취인명', '수취인전화1', '수취인전화2', '우편번호', '배송지주소', '상품가격', '배송비', '포인트결재', '쿠폰결재', '실결제금액', '결제수단', '배송회사', '운송장번호');
$data = array_map('iconv_euckr', $data);
$col = 0;
foreach($data as $cell) {
$worksheet->write(0, $col++, $cell);
}
for($i=1; $row=sql_fetch_array($result); $i++) {
$row = array_map('iconv_euckr', $row);
$worksheet->write($i, 0, ' '.$row['od_id']);
$worksheet->write($i, 1, $row['od_name']);
$worksheet->write($i, 2, ' '.$row['od_tel']);
$worksheet->write($i, 3, ' '.$row['od_hp']);
$worksheet->write($i, 4, ' '.$row['it_name']); //상품명
$worksheet->write($i, 5, ' '.$row['ct_option']); //옵션
$worksheet->write($i, 6, ' '.$row['ct_qty']); //수량
$worksheet->write($i, 7, ' '.$row['od_memo']);
$worksheet->write($i, 8, $row['od_b_name']);
$worksheet->write($i, 9, ' '.$row['od_b_tel']);
$worksheet->write($i, 10, ' '.$row['od_b_hp']);
$worksheet->write($i, 11, ' '.$row['od_b_zip1'].$row['od_b_zip2']);
$worksheet->write($i, 12, print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon']));
$worksheet->write($i, 13, ' '.number_format($row['od_cart_price']));
$worksheet->write($i, 14, ' '.number_format($row['od_send_cost']));
$worksheet->write($i, 15, ' '.number_format($row['od_receipt_point']));
$worksheet->write($i, 16, ' '.number_format($row['od_coupon']));
$worksheet->write($i, 17, ' '.number_format($row['od_receipt_price']));
$worksheet->write($i, 18, ' '.$row['od_settle_case']);
$worksheet->write($i, 19, $row['od_delivery_company']);
$worksheet->write($i, 20, $row['od_invoice']);
}
$workbook->close();
header("Content-Type: application/x-msexcel; name=\"주문내역_".date("ymd", time()).".xls\"");
header("Content-Disposition: inline; filename=\"주문내역_".date("ymd", time()).".xls\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
?>
요렇게 되어있습니다.
문제의 상품명 출력부분은 당연히 상품명이니까 $row['it_name'] 하면 나올줄 알았더니 안나오고
옵션도 ct_option, 수량은 ct_qty 를 입력해도 출력이 안됩니다. ㅠㅠ
어디가 잘못된걸까요?
(해당 부분은 orderprintresult.php 파일을 토대로 작성했습니다.)
굇수님들의 속시원한 해결책을 간절히 기다려봅니다.
부탁드립니다. 넙죽~!! (__+
!-->
답변 2
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'];
내용 추가 후 체크 해 보세요.
9행 sql ... 우선 확인
위 소스에서 $row는 order_table 주문정보만 담고 있음
상품명 등은 cart_table 에 있으니 od_id 이용 추가 쿼리 작성 필요
답변을 작성하시기 전에 로그인 해주세요.