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

영카트 상품 리스트 엑셀 다운 문의 채택완료

연탄집개 1년 전 조회 2,074

아래 소스를이용했는데 영카트 제품을 다운하면 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개

채택된 답변
+20 포인트

아래 코드를 참고하세요.

</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개

연탄집개
1년 전
감사합니다^^

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

위의 중간 부분 쿼리를 보세요.

</p>

<p>$row = sql_query($sql);</p>

<p>

 

하나의 값만 가져오는 쿼리를 사용하고 있습니다.  여러 상품을 엑셀로 다운로드 하시려면 배열 $row를 foreach 문을 통해 모두 담은 다음 엑셀 파일로 exporting 하셔야 합니다.

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

답변에 대한 댓글 1개

키득커뮤니케이션즈
1년 전
하나의 액셀파일로 여러 상품을 담을 경우 빈 배열 변수를 하나 선언하시고 배열 결과값인 $row를 foreach문으로 돌려 엑셀 컬럼형식으로 코딩을 하고 header를 이용해 다운로드 하게 처리하시면 됩니다.

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

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

로그인