회원목록 엑셀다운로드 정보
회원목록 엑셀다운로드본문
<?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, '회원리스트');
?>
5
댓글 12개

감사

감사합니다



엑셀 다운 받아서 파일 열어보니 아래와 같은 에러가 뜨는데 어떻게 하면 없앨 수 있을까요?
엑셀로 회원리스트는 잘 나옵니다. 마지막에 이런 에러가 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

<?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, '회원리스트');
?>
이렇게 해보세용

