편법으루다가 '준비' 상태에서 노출되는 '엑셀배송처리' 부분을 이용해서
'입금'과 '준비' 상태의 모든 주문내역을 출력하도록 작업중인데요.
기존 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);?>
답변 2개 / 댓글 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'];
내용 추가 후 체크 해 보세요.
답변에 대한 댓글 1개
9행 sql ... 우선 확인
위 소스에서 $row는 order_table 주문정보만 담고 있음
상품명 등은 cart_table 에 있으니 od_id 이용 추가 쿼리 작성 필요
답변에 대한 댓글 1개
컬럼들을 찾아보니 상품명이나 옵션명은 안보이더라구요. (다행히 수량 컬럼은 찾아서 적용시켰더니 바로 되었습니다.)
당연히 cart_table 정보를 불러와야 it_name, ct_option의 컬럼내용이 출력이 된다는걸 알겠는데
위 쿼리문에서 어떻게 수정해야 cart_table을 불러올 수 있을까요 ㅠㅜ
답변을 작성하려면 로그인이 필요합니다.
답변을 채 확인하기도 전에 다른 방법으로 해결했습니다. ^^
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 파일을 참조해서 일일히 각 테이블에 누락된 컬럼만 추가해서
출력에 성공했습니다. ㅎㅎ ^^ (다.. 단순한 뇌회전 ㅠㅜ)
이제 마지막 숙제는 배송사와 운송장 번호를 기록해서 업로드했을때 정상적으로 처리되느냐가
관건이네요. ㄷㄷㄷㄷㄷ