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

회원목록 엑셀다운로드

· 2년 전 · 3652 · 12

<?php
include_once('./_common.php');

auth_check_menu($auth, $sub_menu, 'r');

// 엑셀 다운로드 함수
function array_to_excel($data, $filename){
    header('Content-Type: application/vnd.ms-excel; charset=utf-8');
    header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
    header('Cache-Control: max-age=0');
    $out = fopen('php://output', 'w');
    fputs($out, "\xEF\xBB\xBF"); // UTF-8 with BOM
    fputcsv($out, array_keys($data[0]), "\t");
    foreach ($data as $row) {
        fputcsv($out, $row, "\t");
    }
    fclose($out);
}

$sql_common = " from {$g5['member_table']} ";

$sql_search = " where (1) ";
if ($stx) {
    $sql_search .= " and ( ";
    switch ($sfl) {
        case 'mb_point' :
            $sql_search .= " ({$sfl} >= '{$stx}') ";
            break;
        case 'mb_level' :
            $sql_search .= " ({$sfl} = '{$stx}') ";
            break;
        case 'mb_tel' :
        case 'mb_hp' :
            $sql_search .= " ({$sfl} like '%{$stx}') ";
            break;
        default :
            $sql_search .= " ({$sfl} like '{$stx}%') ";
            break;
    }
    $sql_search .= " ) ";
}

if ($is_admin != 'super')
    $sql_search .= " and mb_level <= '{$member['mb_level']}' ";

if (!$sst) {
    $sst = "mb_datetime";
    $sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$result = sql_query($sql);

// 테이블 출력을 위한 HTML 코드 추가
echo "<table border='1'>";
echo "<tr>";
echo "<th>번호</th>";
echo "<th>아이디</th>";
echo "<th>이름</th>";
echo "<th>닉네임</th>";
echo "<th>E-MAIL</th>";
echo "<th>전화번호</th>";
echo "<th>휴대폰번호</th>";
echo "<th>성별</th>";
echo "<th>생년월일</th>";
echo "<th>가입일</th>";
echo "<th>최종접속일</th>";
echo "<th>권한</th>";
echo "</tr>";

for ($i=0; $row=sql_fetch_array($result); $i++) {
    // 데이터 가공
    $mb_gender = '';
    if ($row['mb_gender'] == 'M') {
        $mb_gender = '남성';
    } else if ($row['mb_gender'] == 'F') {
        $mb_gender = '여성';
    }

    // 테이블 출력을 위한 HTML 코드 추가
    echo "<tr>";
    echo "<td>" . ($i+1) . "</td>";
    echo "<td>" . $row['mb_id'] . "</td>";
    echo "<td>" . $row['mb_name'] . "</td>";
    echo "<td>" . $row['mb_nick'] . "</td>";
    echo "<td>" . $row['mb_email'] . "</td>";
    echo "<td>" . $row['mb_tel'] . "</td>";
    echo "<td>" . $row['mb_hp'] . "</td>";
    echo "<td>" . $mb_gender . "</td>";
    echo "<td>" . $row['mb_birth'] . "</td>";
    echo "<td>" . $row['mb_datetime'] . "</td>";
    echo "<td>" . $row['mb_today_login'] . "</td>";
    echo "<td>" . $row['mb_level'] . "</td>";
    echo "</tr>";
}

// 테이블 출력을 위한 HTML 코드 추가
echo "</table>";

// 엑셀 다운로드
 array_to_excel($data, '회원리스트');
?>
 

댓글 작성

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

로그인하기

댓글 12개

오... 감사합니다!! 유용할것 같네요!
정말 유용한걸 주셨군요^^
감사
유용할것 같습니다
감사합니다
2년 전
추천 꾸욱!!~ ^^
2년 전
좋아요 감사 합니다.
2년 전
유용하네요 감사합니다.
2년 전
유익한 소스 공개해 주셔서 고맙습니다.
엑셀 다운 받아서 파일 열어보니 아래와 같은 에러가 뜨는데 어떻게 하면 없앨 수 있을까요?
엑셀로 회원리스트는 잘 나옵니다. 마지막에 이런 에러가 3줄 뜨네요.

==================================================

Warning: array_keys() expects parameter 1 to be array, null given in /******/public_html/adm/member_list_excel.php on line 13

Warning: fputcsv() expects parameter 2 to be array, null given in /******/public_html/adm/member_list_excel.php on line 13

Warning: Invalid argument supplied for foreach() in /******/public_html/adm/member_list_excel.php on line 14


[http://sir.kr/data/editor/2306/d7c1393c734b144bd88119975dffc6d3_1686868894_0919.jpg]
2년 전
@까만도둑

<?php
include_once('./_common.php');

auth_check_menu($auth, $sub_menu, 'r');

// 엑셀 다운로드 함수
function array_to_excel($data, $filename){
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header('Content-Disposition: attachment; filename="' . $filename . '.xls"');
header('Cache-Control: max-age=0');
$out = fopen('php://output', 'w');
fputs($out, "\xEF\xBB\xBF"); // UTF-8 with BOM
fputcsv($out, array_keys($data[0]), "\t");
foreach ($data as $row) {
fputcsv($out, $row, "\t");
}
fclose($out);
}

$sql_common = " from {$g5['member_table']} ";

$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case 'mb_point' :
$sql_search .= " ({$sfl} >= '{$stx}') ";
break;
case 'mb_level' :
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
case 'mb_tel' :
case 'mb_hp' :
$sql_search .= " ({$sfl} like '%{$stx}') ";
break;
default :
$sql_search .= " ({$sfl} like '{$stx}%') ";
break;
}
$sql_search .= " ) ";
}

if ($is_admin != 'super')
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";

if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}

$sql_order = " order by {$sst} {$sod} ";

$sql = " select * {$sql_common} {$sql_search} {$sql_order} ";
$result = sql_query($sql);

$data = array(); // Initialize the data array

while ($row = sql_fetch_array($result)) {
// 데이터 가공
$mb_gender = '';
if ($row['mb_gender'] == 'M') {
$mb_gender = '남성';
} else if ($row['mb_gender'] == 'F') {
$mb_gender = '여성';
}

$data[] = array(
'번호' => ($i + 1),
'아이디' => $row['mb_id'],
'이름' => $row['mb_name'],
'닉네임' => $row['mb_nick'],
'E-MAIL' => $row['mb_email'],
'전화번호' => $row['mb_tel'],
'휴대폰번호' => $row['mb_hp'],
'성별' => $mb_gender,
'생년월일' => $row['mb_birth'],
'가입일' => $row['mb_datetime'],
'최종접속일' => $row['mb_today_login'],
'권한' => $row['mb_level']
);
}

// 테이블 출력을 위한 HTML 코드 추가
echo "<table border='1'>";
echo "<tr>";
echo "<th>번호</th>";
echo "<th>아이디</th>";
echo "<th>이름</th>";
echo "<th>닉네임</th>";
echo "<th>E-MAIL</th>";
echo "<th>전화번호</th>";
echo "<th>휴대폰번호</th>";
echo "<th>성별</th>";
echo "<th>생년월일</th>";
echo "<th>가입일</th>";
echo "<th>최종접속일</th>";
echo "<th>권한</th>";
echo "</tr>";

for ($i = 0; $i < count($data); $i++) {
// 테이블 출력을 위한 HTML 코드 추가
echo "<tr>";
echo "<td>" . ($i + 1) . "</td>";
echo "<td>" . $data[$i]['아이디'] . "</td>";
echo "<td>" . $data[$i]['이름'] . "</td>";
echo "<td>" . $data[$i]['닉네임'] . "</td>";
echo "<td>" . $data[$i]['E-MAIL'] . "</td>";
echo "<td>" . $data[$i]['전화번호'] . "</td>";
echo "<td>" . $data[$i]['휴대폰번호'] . "</td>";
echo "<td>" . $data[$i]['성별'] . "</td>";
echo "<td>" . $data[$i]['생년월일'] . "</td>";
echo "<td>" . $data[$i]['가입일'] . "</td>";
echo "<td>" . $data[$i]['최종접속일'] . "</td>";
echo "<td>" . $data[$i]['권한'] . "</td>";
echo "</tr>";
}

// 테이블 출력을 위한 HTML 코드 추가
echo "</table>";

// 엑셀 다운로드
array_to_excel($data, '회원리스트');
?>

이렇게 해보세용
2년 전
답변 고맙습니다.
알려주신 소스로 적용해보니 에러메세지는 안뜨는데 member 테이블 내용이 한셀에 모두 추가로 나옵니다.

[http://sir.kr/data/editor/2306/3ce97659c60242f4beacac6a3e8e5e40_1686977797_2188.jpg]
2년 전
@까만도둑 혹시 그누보드 몇 버전이실까요? 현재 시스템은 5.5.8.3에 php 7.2 버전 쓰고 있습니다.

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168