묻고답하기
회원정보 엑셀로 출력하는 기능에 대한 질문입니다.
2011.08.30 13:56
지금은 많이 찾아보고 많이 진전이 되어있는 상태입니다.
회원정보를 모두 엑셀로 출력 가능하구요.
그런데 문제는 확장변수가 부분만 비어서 나오는 겁니다.
다른 부분은 모두 잘 출력되고 있습니다. 확장변수를 제외하고요.
검색도 많이 해보고 많은 실력있으신 분들이 올려주신 소스를 고민하고 분석해보고 이리저리 해봐도
안되네요....
소스가 잘못됬다고는 생각안하는데 제생각일 뿐이니 고수분들이 한번 봐주시고
문제점만 콕 찍어주시면 정말 감사하겠습니다.
제가 사용한 소스는 아래와 같습니다.
http://www.xpressengine.com/18207088 이부분을 많이 참고 했습니다.
http://drake.kr/web_html/59829 이분 소스를 활용했습니다.
댓글 2
-
송동우
2011.08.30 16:37
-
박민석_PPC
2011.08.30 20:50
정말 감사합니다^^ 전혀 진전이 없었는데 이렇게 꿈과 희망을 주시다니... 동우님께서 친절하게 알려주신 내용 적용해서 추출해보았습니다. 그런데 unserialize하고 explode 했는데도 db에 저장된 그대로가 출력되네요 외계어같이요 ㅎ 머가 잘못되었을 까요~?^^; -
송동우
2011.08.30 21:36
<?php
$info = array(
"host" => "호스트명",
"user" => "아이디",
"pass" => "비번",
"db" => "DB명",
"table" => "xe_member"
);header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=member.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($field[$i]=="extra_vars")
{
$field[$i] = "tel";
echo "<th>".$field[$i]."</th>";
$field[$i] = "extra_vars";
}
else echo "<th>".$field[$i]."</th>";
}
?>
</tr>
<?php
$result = mysql_query("select * from $info[table]");
while( $data = mysql_fetch_assoc($result) )
{
echo"<tr>";
for( $i=0 ; $i<count($field) ; $i++ )
{
if( $field[$i] == "extra_vars" )
{
$temp = unserialize($data["$field[$i]"])->전화번호확장변수명;
$temp = explode("|@|", $temp);
echo "<td>".$temp[0]."-".$temp[1]."-".$temp[2]."</td>";
}
else echo "<td>".$data["$field[$i]"]."</td>";
}
echo"</tr>";
}
?>
</table>
</body>
</html>
이걸 php파일로 해서 올려 테스트 해 보세요...
제가 테스트 해 보고 결과가 제대로 나오는 것 확인했습니다.
붉은 글씨들만 상황에 맞게 바꾸시구요...... -
박민석_PPC
2011.08.31 12:45
헉...정말 깔끔하게 잘 나온네요!!!! 정말 정말 감사합니다!~!^^ 동우님같은분이 계셔서 저같은 초보가 힘이납니다!! 감사합니다^^
elseif($i==19)
{
이 부분을
elseif($i==22)
{
$dstr = unserialize($data["$field[$i]"])->전화번호변수;
$dstr = explode("|@|", $dstr);
echo "<td>".$dstr[0]."-".$dstr[1]."-".$dstr[2]."</td>";
}
이렇게 바꿔보세요
그리고 붉은 글씨 전화번호변수는 전화번호 변수를 생성할때 입력했던 변수명을 넣어야 합니다.
확장변수를 전체 출력하는 것이 아니라 전화번호만 출력을 하려면 변수를 넣어줘야 하고
특히 전화번호 같은 경우는 배열로 넘어오기 때문에 explode 시켜서 구분해야 합니다.