Spac 매뉴얼/MySQL Dao2009. 11. 20. 00:19
이전 예제까지는 모델 클래스에서 직접 출력해 보았습니다.
이번 예제에선 모델클래스에서 가져온 결과값을 뷰에 출력하는 예제를 해보겠습니다.

예제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를 연결합니다.
    }

    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;                       //결과 변수에 배열로 담습니다.
        }

        /*  --결과값을 뷰로 출력하기 위해 이부분을 주석처리 합니다.
        ec
ho "<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->변수  방식으로 사용하는것을 알 수 있습니다.

아래는 결과 입니다.




이상으로 간단한 데이터베이스 예제를 해보았습니다.
다음 예제에서는 조건문이 들어간 쿼리문을 실행하는 예제를 해보겠습니다.

Posted by webdata