영카트 상품 리스트 엑셀 다운 문의 채택완료
아래 소스를이용했는데 영카트 제품을 다운하면 DB에 제품 하나이상을 못가저 오는데 무엇이 문제일까요>
고수님들 조언 부탁드립니다.
감사합니다.
</p>
<p><?php
include_once('./_common.php');</p>
<p>auth_check($auth[$sub_menu], 'r');</p>
<p>$referer = parse_url ( $_SERVER['HTTP_REFERER'] ) ;
parse_str( $referer['query'], $output);
foreach ($output as $key => $value) {
${$key} = $value;
}</p>
<p>$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;</p>
<p>$sql = " SELECT * FROM g5_shop_item";</p>
<p>$result = sql_query($sql);
$row = sql_fetch($sql);</p>
<p>/* ================================= */
$type = 'csv'; // comma-separated values, text 코마 구분 값 포맷의 파일
/* ================================= */</p>
<p>$file_alias ="itemlist_".date('Ymd').".{$type}";</p>
<p>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');</p>
<p>/* ================================= */</p>
<p>
$filedName = array(
"분류",
"상품코드",
"상품명",
"기본설명"
);</p>
<p> $prtPattern = "";
foreach($filedName as $val ) {
$prtPattern .= ',"%s"';
}
$prtPattern = substr($prtPattern, 1)."\r\n";</p>
<p>echo "\xEF\xBB\xBF";
vprintf($prtPattern, $filedName );</p>
<p>$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 );
?></p>
<p>
답변 2개
아래 코드를 참고하세요.
</strong></p>
<p><?php
include_once('./_common.php');
auth_check($auth[$sub_menu], 'r');</p>
<p>// 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);</p>
<p>// 파일설정
$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');</p>
<p>// 헤더행출력
$filedName = array("분류", "상품코드", "상품명", "기본설명");
$prtPattern = "";
foreach ($filedName as $val) {
$prtPattern .= ',"%s"';
}
$prtPattern = substr($prtPattern, 1) . "\r\n";
echo "\xEF\xBB\xBF"; // BOMの出力
vprintf($prtPattern, $filedName);</p>
<p>// 데이타행출력
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);
}
?>
</p>
<p><strong>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
위의 중간 부분 쿼리를 보세요.
</p>
<p>$row = sql_query($sql);</p>
<p>
하나의 값만 가져오는 쿼리를 사용하고 있습니다. 여러 상품을 엑셀로 다운로드 하시려면 배열 $row를 foreach 문을 통해 모두 담은 다음 엑셀 파일로 exporting 하셔야 합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인