웹마스터 팁

<?php
//url 로 직접 불러오는것을 방지
if(!strstr($_SERVER['HTTP_REFERER'],$_SERVER['SERVER_NAME'])&& !strstr($_SERVER['HTTP_REFERER'],'out_excel.php')) exit;

$info = array(
"host" => "localhost",
"user" => "db명",
"pass" => "db비번",
"db" => "xe테이블명",
"table" => "xe_documents",
"module_srl" => "출력할게시판slr",
);
$getFields = array("title","regdate","content"); //출력원하는 칼럼을 배열로 입력

header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=doc_".date('Ymd').".xls");

$con = mysql_connect($info[host], $info[user], $info[pass]) || die(mysql_error());
mysql_query("set names utf8");
$con_db = mysql_select_db($info[db]) || die(mysql_error());
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv=Content-Type content=text/html; charset="utf-8">
</head>
<body>
<table border=1>
<tr align=center>

<?php
//제목 불러오기
$fields = mysql_list_fields("$info[db]", "$info[table]");
$columns = mysql_num_fields($fields);

for( $i=0 ; $i<$columns ; $i++ )
{
	$field[$i]=mysql_field_name($fields, $i);
	if( in_array($field[$i], $getFields) ) echo "<th>".$field[$i]."</th>";
}

//확장변수의 타이틀은 값이므로 		
$result = mysql_query("select  var_name from xe_document_extra_keys where module_srl = $info[module_srl]");					
while( $data = mysql_fetch_array($result) )
{							
	echo "<th>".htmlspecialchars($data[var_name])."</th>";
}	

echo"</tr>";				


//데이터 불러오기
$result = mysql_query("select * from $info[table] where module_srl = $info[module_srl]");
while( $data = mysql_fetch_assoc($result) )
{
	echo"<tr>";
	foreach( $data as $key => $val )
	{
		if( in_array($key, $getFields) ) 
		{
			if ($key ==  'regdate') {	
				echo "<td	style='mso-number-format:\"0_ \";' >".htmlspecialchars($val)."</td>";				
			}elseif ($key ==  'content'){		//내용 출력할경우 태그가 그대로 출력됨			
				//echo "<td>".$val."</td>";	 //셀이 두칸이상으로 늘어남
				echo "<td >".htmlspecialchars(strip_tags(str_replace(" ","",$val)))."</td>";	
			}else {
				echo "<td>".htmlspecialchars($val)."</td>";
			}	
		}

		if ($key ==  'document_srl'){			//확장변수 불러올때 사용
			$d_srl=$val;
		}

	}
				//확장변수 출력 ////////////////////////////////////////////
				//eid리스트를 불러온다
				$query=mysql_query("select eid from xe_document_extra_keys where module_srl = $info[module_srl]");		
				while($extra_title=mysql_fetch_array($query))
				{		
					echo"<td>";

					$egetFields = array("value","eid");	
					//확장변수 값을 불러와 eid값이 같은곳에 출력
					$extra_result = mysql_query("select * from xe_document_extra_vars where document_srl = $d_srl");  
					while( $edata = mysql_fetch_assoc($extra_result) )
					{
						$extra_str="";
						foreach( $edata as $key => $val ){	
							if( in_array($key, $egetFields) ){							
								$extra_str = $val.",".$extra_str;
							}
						}

						$extra_arr=explode(",",$extra_str);									
						if ($extra_title[eid]==$extra_arr[0]){

							//전화번호값은 "|@|" 를 "-" 로 변경
							if($extra_title[eid]=="mb_phone_Number"){
								echo str_replace("|@|","-",htmlspecialchars($extra_arr[1]));

							//기타 배열값들은 ',' 로 변경
							}elseif($extra_title[eid]=="mb_incomplete"||$extra_title[eid]=="mb_cs"){
								echo str_replace("|@|",",",htmlspecialchars($extra_arr[1]));
							}else{
								echo htmlspecialchars($extra_arr[1]);						
							}
						}
					}

					echo"</td>";   //eid값이 없으면 빈칸입력
				}				
				/////////////////////////////////////////////////////////////////////

	echo"</tr>";
}


?>
</table>
</body>
</html>


확장변수 출력부분만 끼워넣었습니다.

 

url로 실행안되고 사이트내에서 링크로 불러오게 했고요

 

저 같은경우는 리스트 아래 검색버튼옆에 버튼방식으로 추가해서 사용중입니다.(루트에 위 php 파일이 있고)

 

<a cond="$grant->manager" class="btn" href="out_excel.php" title="엑셀 출력"> 엑셀출력</a>

 

전화번호출력과 기타배열들 출력부분은 해당 확장변수 eid값으로 변경해주시면됩니다.

 

 

제목 글쓴이 날짜
게시판글 엑셀 파일 보내기 php7용 file 황금날개 2018.06.05
외부 페이지에서 회원 프로필 정보(확장변수) 나타내기 한꼬마 2015.10.14
[XE수정] 관리자페이지 회원리스트를 내맘대로 브레인630 2015.08.11
자신이 쓴 글에 특정유저 댓글을 차단 Ikoo 2015.06.20
확장변수 검색시 범위 설정해서 검색하는 팁. [2] 키다리아저씨2 2015.06.16
구글 웹폰트 부분으로 적용하기 착한동구 2015.06.05
리스트에 스크랩 버튼을 뺴는 코드입니다. [3] 착한악마 2015.04.30
확장변수에 시분초 추가하기 [1] file 해떨 2015.04.15
정렬을 사용자정의값으로 한 경우 저장이 안 되는 현상 수정 [1] sejin7940 2015.01.06
확장변수 정렬 방법 아름다운청년1 2014.12.31
파일첨부 된 글을 게시글 이동시, 사용자정의 값이 전부 삭제되는 버그 패치 [5] sejin7940 2014.11.20
게시판 글 엑셀로 출력하기(확장변수 포함) [15] 한이73 2014.07.17
관리자가 글 쓸때는 분류를 선택 안 해도 등록되도록 (공지글을 쓸때를 위해) 개선 [2] sejin7940 2014.06.21
마이피플봇을 이용한 마이피플 알리미 (푸시서비스) 이용하기 [4] garnecia 2014.06.01
게시판 글쓰기 폼은 없이 확장변수만 표시할 수 있는 게시판 만들기 (for sketchbook5 최신버전 기준) [2] 큰성565 2014.05.02
*LI-NA님의 큰 선물* SKETCHBOOK5 (최신버전)에서 특정 확장변수를 추천하는 사람에게만 공개하도록 하는 방법 [4] file 큰성565 2014.04.30
게시판에 대해 닉네임,이름 등의 정렬을 추가하는 방법 [1] sejin7940 2014.03.09
코어 수정 없이 스킨 수정만으로 게시판 목록에 유튜브,비메오 썸네일 출력 [2] foret 2014.02.23
게시판 목록에서 새창 띄워서 다른 형태 나오게 하기 [3] foret 2014.02.23
XE 1.7.4 새로운 우편번호 체계에서 나머지주소 관련 사용실수 방지방법입니다 [1] sejin7940 2014.02.07