CodeIgniter3
06. [CodeIgniter3] 데이터 표시하기
drizzle0925
2021. 12. 29. 12:19
728x90
데이터 표시하기
이전에는 데이터베이스에 데이터를 추가하는 방법에 대해서 알아봤습니다.
이번에는 데이터베이스에서 데이터를 표시(가져오기)하고 View에 레코드를 표시하는 방법에 대해 알아봅시다.
users 테이블에 저장된 데이터를 표시하겠습니다.
Controller
Application/controllers/Hello.php 파일에 아래 코드를 입력하세요.
<?php
class Hello extends CI_Controller
{
public function __construct()
{
// CodeIgniter의 기본 생성자 호출
parent::__construct();
// 데이터베이스 라이브러리를 수동으로 로드 (auto_load를 사용하지 않는 방법)
$this->load->database();
// url 헬퍼 호출. helper란 특정영역에 해당하는 함수들의 모음입니다.
$this->load->helper('url');
// 모델 로드
$this->load->model('Hello_Model');
}
public function savedata()
{
// 등록 보기 양식 로드
$this->load->view('registration');
// 제출 버튼 확인
if($this->input->post('save'))
{
// 폼 데이터를 가져와서 로컬 변수에 저장
$n = $this->input->post('name');
$e = $this->input->post('email');
$m = $this->input->post("mobile");
// Hello_Model의 saverecord 메소드를 호출하고 변수를 매개변수로 전달
$this->Hello_Model->saverecords($n, $e, $m);
redirect("Hello/dispdata");
}
}
public function dispdata()
{
// 화면에 표시할 데이터를 모델에 있는 메서드로 받아와서 $result['data']에 넣음
$result['data'] = $this->Hello_Model->displayrecords();
// view()메서드 2번째 인자에 배열로 값을 전달하면 View에서 사용할수 있다. View에서 표시할 데이터를 전달.
$this->load->view('display_records', $result);
}
}
?>
View
Application/views/display_records.php 파일을 만들고 아래 코드를 입력합니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>데이터 보기</title>
</head>
<body>
<table width="600" border="1" cellspacing="5" cellpadding="5">
<tr style="background:#CCC">
<th>No</th>
<th>이름</th>
<th>이메일</th>
<th>연락처</th>
</tr>
<?php
$i = 1;
foreach($data as $row)
{
echo "<tr>";
echo "<td>".$i."</td>";
echo "<td>".$row->name."</td>";
echo "<td>".$row->email."</td>";
echo "<td>".$row->mobile."</td>";
echo "</tr>";
$i++;
}
?>
</table>
</body>
</html>
Model
Application/models/Hello_Model.php 파일을 열어 아래 코드를 입력합니다.
<?php
class Hello_Model extends CI_Model
{
function saverecords($name, $email, $mobile)
{
$query = "INSERT INTO users values('','$name','$email','$mobile')";
$this->db->query($query);
}
function displayrecords()
{
$query = $this->db->query("select * from users");
return $query->reuslt();
}
}
?>
아래 URL로 이동해서 확인합니다.
http://localhost/index.php/hello/dispdata
redirect할때 주소가 "[::1]"라고 표시되면서 제대로 이동이 안되는 경우가 생기면 application/config/config.php 파일에 있는 값을 수정합니다. 이 값이 비어있어서 발생하는 에러입니다.
// default
$config['base_url'] = '';
// $config['base_url'] = 'http://localhost/project_name';
$config['base_url'] = 'http://localhost';
Github
https://github.com/jun0925/study/commit/eb1df0e961278cdb04359e76555f97fa452554b7
728x90