묻고답하기
회원 - 추가된 항목을 이용하기 위해 다음과 같이 작성해보았는데 도움을 부탁드립니다.
2008.04.10 21:01
회원 가입시 추가된 항목으로 여러가지(항목제목과 항목이름 신분: position , 학년 grade , 반 ban , 부서 branch , 직책 duty , 업무 work)를 추가하였습니다.
그리고 외부페이지에 파일을 아래와 같이 만들어 위의 추가된 항목들을 출력하고자 합니다.
책으로만 이해하는 중이라 소스 작성이 어렵네요.
함수는 조금 이해되고, 함수를 정의해서 활용하기도 하는데 클래스를 이해하지 못해서 지금도 고민 중입니다.
다음의 소스를 클래스와 함수를 이용하는 소스로 변경해주시면 참고가 되어 한 걸음 더 도약의 기회가 되겠습니다.
현재의 소스로 추가된 항목의 출력은 되지만 엉성하기 그지 없는 것이라 부탁드려봅니다.
<?php
$temp=mysql_query("select * from yi_member");
while($temp2=mysql_fetch_array($temp)){
$position="";
$grade="";
$ban="";
$branch="";
$duty="";
$work="";
$temp_array=explode("{",$temp2[extra_vars]);//{로 구분
$temp_array1=explode(":",$temp_array[0]);//{의 앞부분에서 다시 배열로......
$count=2*$temp_array1[3];//{의 앞부분에서 추가항목 수를 구함
$temp_array2=explode(";",$temp_array[1]);//}의 뒷부분을 배열로......
for($i=0;$i<$count;$i++){
$i_=$i%2;
$extra_array=explode(":",$temp_array2[$i]);
if($i_==0){
$extra_name=str_replace("\"","",$extra_array[2]);//추가된 필드명
}else{
$$extra_name=str_replace("\"","",$extra_array[2]);//추가된 필드의 값
}
}
echo "아이디: $temp2[user_id] , 이름: $temp2[user_name] , 신분: $position , $grade 학년 $ban 반 부서: $branch , 직책: $duty , 업무: $work <br>";
}
?>
소스의 내용은
회원정보 테이블(yi_member)의 값을 읽어와
extra_vars 필드의 값을 추가된 항목이름으로 정의된 변수 넣어 출력하는 것입니다.
extra_vars의 값을 억지로 나누고 쪼개어 만든 것이라 ....... 할 말이 없네요. 답답한 마음에 저렇게 해보았네요.
unserialize 함수를 이용하면 될 것 같은데 unserialize 함수의 이용 방법을 정확하게 이해하지 못했습니다.
클래스를 이용하든지 unserialize 함수를 이용하든지 하여튼 소스가 깔끔하게 정리될 수 있으면 좋겠습니다.
이것이 정리되면 다음 다른 작업으로 넘어갈 수 있겠는데 고수님들의 도움을 부탁드립니다.