CodeIgniter3

07. [CodeIgniter3] 데이터 삭제하기

drizzle0925 2021. 12. 29. 12:45
728x90

데이터 삭제하기

users 테이블에 있는 레코드를 삭제하는 방법에 대해 알아보겠습니다.

 

Controller

apllication/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);
        }

        public function deletedata()
        {
            // id값을 get타입으로 받아옵니다.
            $id = $this->input->get('id');
            // Hello_Model에 있는 deleterecords 메서드 호출
            $this->Hello_Model->deleterecords($id);
            // url을 Hello/dispdate로 이동시킴
            redirect("Hello/dispdata");
        }
    }
?>

 

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>
            <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 "<td><a href='deletedata?id=".$row->user_id."'>삭제</a></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->result();
    }

    function deleterecords($id)
    {
        $this->db->query("delete from users where user_id='".$id."'");
    }
}
?>

 

데이터를 삭제해 보겠습니다.

삭제되었습니다.

 

Github

https://github.com/jun0925/study/commit/db70ce43fbbec934acb91bf7306c2f216a07c522

728x90