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