이전 예제까지는 모델 클래스에서 직접 출력해 보았습니다.
이번 예제에선 모델클래스에서 가져온 결과값을 뷰에 출력하는 예제를 해보겠습니다.
예제3 의 Member 클래스를 좀 더 수정해 보겠습니다.
* Spac/model/Member.Class.php
위와 같이 결과값을 클래스에서 출력하지 않고 클래스 맴버변수에 저장한 뒤 뷰를 배치합니다.
뷰로 사용할 파일을 정의하였기때문에 해당 파일을 생성합니다.
* Spac/view/list.html
이번 예제에선 모델클래스에서 가져온 결과값을 뷰에 출력하는 예제를 해보겠습니다.
예제3 의 Member 클래스를 좀 더 수정해 보겠습니다.
* Spac/model/Member.Class.php
<?php
class Member extends Controller {
var $db_msg;
var $data_list;
var $total_count = 0;
function Member() { }
function initMember() { //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.
$this->getControllerInstance("Dao"); // Dao 클래스를 로드합니다.
$this->Dao->transaction = true; // 트랜젝션을 Start 합니다.
$this->Dao->Connect(); // DB를 연결합니다.
class Member extends Controller {
var $db_msg;
var $data_list;
var $total_count = 0;
function Member() { }
function initMember() { //맴버클래스 초기화메소드를 만들고 여기서 DB 연결을 합니다.
$this->getControllerInstance("Dao"); // Dao 클래스를 로드합니다.
$this->Dao->transaction = true; // 트랜젝션을 Start 합니다.
$this->Dao->Connect(); // DB를 연결합니다.
}
function getCount() {
$query = " Select count(*) From member ";
$this->Dao->executeQuery($query);
//echo "<p>회원수는 " . $this->Dao->getResult() ." 명 입니다.</p>"; //주석처리
$this->total_count = $this->Dao->getResult(); //총레코드수를 맴버변수에 담습니다.
}
function getList() {
$this->data_list = array(); //결과를 담을 변수를 초기화 합니다.
$query = " Select * From member "; //전체 데이터 검색 쿼리문 작성
$this->Dao->executeQuery($query); //쿼리문 실행
$Result = $this->Dao->result;
while( $Rows = $this->Dao->getFetchArray() ) { //결과값을 행을 돌며
$this->data_list[] = $Rows; //결과 변수에 배열로 담습니다.
}
/* --결과값을 뷰로 출력하기 위해 이부분을 주석처리 합니다.
echo "<pre>"; //배열로 담긴 결과값을 보기 쉽도록 출력합니다.
print_r($this->data_list);
echo "</pre>";
*/
$this->result_uri = "list.html"; // 뷰로 사용할 파일을 지정합니다.
$this->dispatcher(); // 뷰를 배치합니다.
}
function execute() { //Spac의 기본 액션메소드를 정의합니다.
$this->initMember(); //기본메소드가 호출되면 DB연결을 수행합니다.
$this->db_msg = "데이터베이스 연결에 성공했습니다.";
$this->getCount();
$this->getList();
function getCount() {
$query = " Select count(*) From member ";
$this->Dao->executeQuery($query);
//echo "<p>회원수는 " . $this->Dao->getResult() ." 명 입니다.</p>"; //주석처리
$this->total_count = $this->Dao->getResult(); //총레코드수를 맴버변수에 담습니다.
}
function getList() {
$this->data_list = array(); //결과를 담을 변수를 초기화 합니다.
$query = " Select * From member "; //전체 데이터 검색 쿼리문 작성
$this->Dao->executeQuery($query); //쿼리문 실행
$Result = $this->Dao->result;
while( $Rows = $this->Dao->getFetchArray() ) { //결과값을 행을 돌며
$this->data_list[] = $Rows; //결과 변수에 배열로 담습니다.
}
/* --결과값을 뷰로 출력하기 위해 이부분을 주석처리 합니다.
echo "<pre>"; //배열로 담긴 결과값을 보기 쉽도록 출력합니다.
print_r($this->data_list);
echo "</pre>";
*/
$this->result_uri = "list.html"; // 뷰로 사용할 파일을 지정합니다.
$this->dispatcher(); // 뷰를 배치합니다.
}
function execute() { //Spac의 기본 액션메소드를 정의합니다.
$this->initMember(); //기본메소드가 호출되면 DB연결을 수행합니다.
$this->db_msg = "데이터베이스 연결에 성공했습니다.";
$this->getCount();
$this->getList();
}
}
?>}
위와 같이 결과값을 클래스에서 출력하지 않고 클래스 맴버변수에 저장한 뒤 뷰를 배치합니다.
뷰로 사용할 파일을 정의하였기때문에 해당 파일을 생성합니다.
* Spac/view/list.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원리스트</title>
</head>
<body>
<?php echo $this->db_msg ?>
<br/><br/>
회원수는 <?php echo $this->total_count?> 명 입니다.
<br/><br/>
<table border="1">
<tr bgcolor="#f2f2f2">
<td width="100">아이디</td>
<td width="120">이름</td>
<td width="150">등록일</td>
</tr>
<?php
foreach($this->data_list as $Rows) {
?>
<tr>
<td width="100"><?=$Rows['user_id']?></td>
<td width="120"><?=$Rows['user_name']?></td>
<td width="150"><?=$Rows['reg_date']?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
위의 list.html 내용을 보면 클래스내부에서 맴버변수를 가져다 사용하듯 $this->변수 방식으로 사용하는것을 알 수 있습니다.
아래는 결과 입니다.
이상으로 간단한 데이터베이스 예제를 해보았습니다.
다음 예제에서는 조건문이 들어간 쿼리문을 실행하는 예제를 해보겠습니다.
'Spac 매뉴얼 > MySQL Dao' 카테고리의 다른 글
예제5 : 바인딩 변수를 이용한 조건 쿼리문의 실행 (0) | 2009.11.26 |
---|---|
예제3 : 데이터의 조회 (0) | 2009.11.18 |
예제2 : 테이블 생성 및 조회 (0) | 2009.11.18 |
예제1 : Database Connection (0) | 2009.11.16 |
Spac Dao for Mysql Ver 9.0629 (0) | 2009.11.14 |