영카트 상품 리스트 엑셀 다운 문의
본문
아래 소스를이용했는데 영카트 제품을 다운하면 DB에 제품 하나이상을 못가저 오는데 무엇이 문제일까요>
고수님들 조언 부탁드립니다.
감사합니다.
<?php
include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');
$referer = parse_url ( $_SERVER['HTTP_REFERER'] ) ;
parse_str( $referer['query'], $output);
foreach ($output as $key => $value) {
${$key} = $value;
}
$sql_common = " from {$g5['g5_shop_item_table']} a ,
{$g5['g5_shop_category_table']} b
where (a.ca_id = b.ca_id";
if ($is_admin != 'super')
$sql_common .= " and b.ca_mb_id = '{$member['mb_id']}'";
$sql_common .= ") ";
$sql_common .= $sql_search;
$sql = " SELECT * FROM g5_shop_item";
$result = sql_query($sql);
$row = sql_fetch($sql);
/* ================================= */
$type = 'csv'; // comma-separated values, text 코마 구분 값 포맷의 파일
/* ================================= */
$file_alias ="itemlist_".date('Ymd').".{$type}";
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
Header('Content-Disposition: attachment; filename=' . $file_alias);
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
Header('Pragma: no-cache');
Header('Expires: 0');
/* ================================= */
$filedName = array(
"분류",
"상품코드",
"상품명",
"기본설명"
);
$prtPattern = "";
foreach($filedName as $val ) {
$prtPattern .= ',"%s"';
}
$prtPattern = substr($prtPattern, 1)."\r\n";
echo "\xEF\xBB\xBF";
vprintf($prtPattern, $filedName );
$filedValues = array(
preg_replace('/[\"]/', '""', $row['ca_id'])
,preg_replace('/[\"]/', '""', $row['it_id'])
,preg_replace('/[\"]/', '""', $row['it_name'])
,preg_replace('/[\"]/', '""', $row['it_basic'])
);
vprintf($prtPattern, $filedValues );
?>
답변 2
아래 코드를 참고하세요.
<?php
include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');
// SQL쿼리수정
$sql = "SELECT * FROM {$g5['g5_shop_item_table']} a, {$g5['g5_shop_category_table']} b WHERE (a.ca_id = b.ca_id";
if ($is_admin != 'super') {
$sql .= " and b.ca_mb_id = '{$member['mb_id']}'";
}
$sql .= ")";
$result = sql_query($sql);
// 파일설정
$type = 'csv';
$file_alias = "itemlist_" . date('Ymd') . ".{$type}";
header("Content-Type: application/vnd.ms-excel; charset=utf-8");
Header('Content-Disposition: attachment; filename=' . $file_alias);
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
Header('Pragma: no-cache');
Header('Expires: 0');
// 헤더행출력
$filedName = array("분류", "상품코드", "상품명", "기본설명");
$prtPattern = "";
foreach ($filedName as $val) {
$prtPattern .= ',"%s"';
}
$prtPattern = substr($prtPattern, 1) . "\r\n";
echo "\xEF\xBB\xBF"; // BOMの出力
vprintf($prtPattern, $filedName);
// 데이타행출력
while ($row = sql_fetch_array($result)) {
$filedValues = array(
preg_replace('/[\"]/', '""', $row['ca_id']),
preg_replace('/[\"]/', '""', $row['it_id']),
preg_replace('/[\"]/', '""', $row['it_name']),
preg_replace('/[\"]/', '""', $row['it_basic'])
);
vprintf($prtPattern, $filedValues);
}
?>
위의 중간 부분 쿼리를 보세요.
$row = sql_query($sql);
하나의 값만 가져오는 쿼리를 사용하고 있습니다. 여러 상품을 엑셀로 다운로드 하시려면 배열 $row를 foreach 문을 통해 모두 담은 다음 엑셀 파일로 exporting 하셔야 합니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.