이전 예제에서 가입된 회원들의 리스트를 조회하는 예제를 해보겠습니다.
회원에 관련된 내용은 모두 User 클래스에서 실행합니다.
이전에 작성된 User 클래스에 몇가지 메소드를 추가해 보겠습니다.
* Spac/model/User.Class.php
<?php
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
var $data_list = array();
function User () {
$this->Dao = new Dao; //$this->getControllerInstance("Dao"); 로 대체 가능.
$this->Dao->transaction = true;
$this->Dao->connect();
}
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
// POST 로 전송된 값을 맴버변수로 세팅합니다.
function setPostVars() { //예제를 위해 POST 값을 직접 맴버변수에 등록했음.
$this->user_id = $_POST['user_id'];
$this->user_pw = $_POST['user_pw'];
$this->user_name = $_POST['user_name'];
}
//위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
function regUser() {
$this->setPostVars();
$query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
$this->Dao->prepareStatement($query);
$param = array($this->user_id,$this->user_pw,$this->user_name);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
echo "회원가입에 성공했습니다.";
$this->Dao->closeStatement();
}
function getUserList() {
$this->data_list = array();
$query = " Select * From user_info ";
$this->Dao->executeQuery($query);
while($rows = $this->Dao->getFetchArray()) {
$this->data_list[] = $rows;
}
$this->result_uri = "list.html";
$this->dispatcher();
}
}
?>
회원리스트를 모두 배열로 가져오는 메소드 getUserList 를 추가했습니다.
회원 리스트는 "list.html" 로 출력합니다.
이제 list.html 파일을 뷰에 생성합니다.
* Spac/view/list.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>회원리스트</title>
</head>
<body>
회원수는 <?=count($this->data_list)?> 명 입니다.
<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>
<!-- 회원가입버튼을 만들어주고 클릭하면 이전에 만든 가입폼으로 이동시킵니다. -->
<input type="button" value="회원가입" onClick="document.location.href='/User/viewUserRegForm'"></input>
</body>
</html>
이제 브라우저로 출력해 보겠습니다.
아래와 같이 호출합니다.
http://localhost/User/getUserList
회원 리스트가 잘 출력되는지, 회원가입버튼을 클릭하면 이전 예제에서 만든 가입품으로 이동하는지 확인합니다.
이제 회원 가입을 하면 가입처리된 후에 위 리스트 화면으로 이동하도록 수정해 보겠습니다.
User 클래스의 "regUser" 메소드의 마지막 부분만 수정해주면 되겠습니다.
* Spac/model/User.Class.php
<?php
require_once("/home/sue/www/Spac/controller/Dao/Dao.Class.php"); // getControllerInstance("Dao") 사용할경우 생략가능
class User extends Controller {
var $user_id;
var $user_pw;
var $user_name;
var $data_list = array();
function User () {
$this->Dao = new Dao; //$this->getControllerInstance("Dao"); 로 대체 가능.
$this->Dao->transaction = true;
$this->Dao->connect();
}
function viewUserRegForm() {
$this->result_uri = "user_reg.html";
$this->dispatcher();
}
// POST 로 전송된 값을 맴버변수로 세팅합니다.
function setPostVars() {
$this->user_id = $_POST['user_id'];
$this->user_pw = $_POST['user_pw'];
$this->user_name = $_POST['user_name'];
}
//위에서 저장된 맴버변수 값을 DB에 Insert 합니다.
function regUser() {
$this->setPostVars();
$query = " Insert Into user_info(user_id,user_pw,user_name,reg_date) values(?,password(?),?,NOW()) ";
$this->Dao->prepareStatement($query);
$param = array($this->user_id,$this->user_pw,$this->user_name);
$this->Dao->setParam($param);
$this->Dao->executeStatement();
$this->Dao->closeStatement();
//echo "회원가입에 성공했습니다.";
$this->result_uri = "/User/getUserList";
$this->redirect();
}
function getUserList() {
$this->data_list = array();
$query = " Select * From user_info ";
$this->Dao->executeQuery($query);
while($rows = $this->Dao->getFetchArray()) {
$this->data_list[] = $rows;
}
$this->result_uri = "list.html";
$this->dispatcher();
}
}
?>
위 소스중 echo 로 출력해주는 부분은 주석처리하고 아래 해당 페이지로 바로 이동 (
redirect) 시켜줍니다.
브라우저에서 확인하여 회원가입 -> 리스트화면 -> 회원가입화면 의 형식으로 이동이 되는지 확인합니다.