PHP / MariaDB / 데이터베이스의 데이터 수정하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기)

employees.php

Edit 버튼을 추가합니다. employees_edit.php에 emp_no의 값을 전달합니다.

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Employees</title>
    <style>
      body {
        font-family: Consolas, monospace;
        font-family: 12px;
      }
      table {
        width: 100%;
      }
      th, td {
        padding: 10px;
        border-bottom: 1px solid #dadada;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>emp_no</th>
          <th>first_name</th>
          <th>last_name</th>
          <th>hire_date</th>
          <th>Edit</th>
          <th>Delete</th>
        </tr>
      </thead>
      <tbody>
        <?php
          $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
          $delete_emp_no = $_POST[ 'delete_emp_no' ];
          if ( isset( $delete_emp_no ) ) {
            $jb_sql_delete = "DELETE FROM employees WHERE emp_no = '$delete_emp_no';";
            mysqli_query( $jb_conn, $jb_sql_delete );
            echo '<p style="color: red;">Employee ' . $delete_emp_no . ' is deleted.</p>';
          }
          $jb_sql = "SELECT * FROM employees LIMIT 5;";
          $jb_result = mysqli_query( $jb_conn, $jb_sql );
          while( $jb_row = mysqli_fetch_array( $jb_result ) ) {
            $jb_edit = '
              <form action="employees_edit.php" method="POST">
                <input type="hidden" name="edit_emp_no" value="' . $jb_row[ 'emp_no' ] . '">
                <input type="submit" value="Edit">
              </form>
            ';
            $jb_delete = '
              <form action="employees.php" method="POST">
                <input type="hidden" name="delete_emp_no" value="' . $jb_row[ 'emp_no' ] . '">
                <input type="submit" value="Delete">
              </form>
            ';
            echo '<tr><td>' . $jb_row[ 'emp_no' ] . '</td><td>'. $jb_row[ 'first_name' ] . '</td><td>' . $jb_row[ 'last_name' ] . '</td><td>' . $jb_row[ 'hire_date' ] . '</td><td>' . $jb_edit . '</td><td>' . $jb_delete . '</td></tr>';
          }
        ?>
      </tbody>
    </table>
  </body>
</html>

employees_edit.php

  • employees.php에서 Edit 버튼을 클릭했을 때 이동하는 페이지입니다.
  • emp_no 값을 받습니다.
$edit_emp_no = $_POST[ 'edit_emp_no' ];
  • 데이터베이스에 연결합니다.
$jb_conn = mysqli_connect( 'localhost', 'username', 'jb0923', 'password' );
  • emp_no에 해당하는 직원의 정보를 가져옵니다.
$jb_sql_edit = "SELECT * FROM employees WHERE emp_no = $edit_emp_no;";
  • 가져온 직원의 정보를 기본값으로 하는 폼을 만듭니다.
<form action="employees_update.php" method="POST">
  <input type="hidden" name="emp_no" value="<?php echo $jb_row[ 'emp_no' ]; ?>">
  <p>NO <?php echo $jb_row[ 'emp_no' ]; ?></p>
  <p>Birth Date <input type="date" name="birth_date" value="<?php echo $jb_row[ 'birth_date' ]; ?>" required></p>
  <p>First Name <input type="text" name="first_name" value="<?php echo $jb_row[ 'first_name' ]; ?>" required></p>
  <p>Last Name <input type="text" name="last_name" value="<?php echo $jb_row[ 'last_name' ]; ?>" required></p>
  <p>Gender <select name="gender" required>
    <option value="M" <?php if ( $jb_row[ 'gender' ] == M ) { echo 'selected'; } ?>>M</option>
    <option value="F" <?php if ( $jb_row[ 'gender' ] == F ) { echo 'selected'; } ?>>F</option>
  </select></p>
  <p>Hire Date <input type="date" name="hire_date" value="<?php echo $jb_row[ 'hire_date' ]; ?>" required></p>
  <button>Edit</button>
</form>
  • 전체 코드는 다음과 같습니다.
<?php
  $edit_emp_no = $_POST[ 'edit_emp_no' ];
  $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
  $jb_sql_edit = "SELECT * FROM employees WHERE emp_no = $edit_emp_no;";
  $jb_result = mysqli_query( $jb_conn, $jb_sql_edit );
  $jb_row = mysqli_fetch_array( $jb_result );
?>

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Edit Employee</title>
    <style>
      body {
        font-family: Consolas, monospace;
        font-family: 12px;
      }
    </style>
  </head>
  <body>
    <h1>Edit Employee</h1>
    <form action="employees_update.php" method="POST">
      <input type="hidden" name="emp_no" value="<?php echo $jb_row[ 'emp_no' ]; ?>">
      <p>NO <?php echo $jb_row[ 'emp_no' ]; ?></p>
      <p>Birth Date <input type="date" name="birth_date" value="<?php echo $jb_row[ 'birth_date' ]; ?>" required></p>
      <p>First Name <input type="text" name="first_name" value="<?php echo $jb_row[ 'first_name' ]; ?>" required></p>
      <p>Last Name <input type="text" name="last_name" value="<?php echo $jb_row[ 'last_name' ]; ?>" required></p>
      <p>Gender <select name="gender" required>
        <option value="M" <?php if ( $jb_row[ 'gender' ] == M ) { echo 'selected'; } ?>>M</option>
        <option value="F" <?php if ( $jb_row[ 'gender' ] == F ) { echo 'selected'; } ?>>F</option>
      </select></p>
      <p>Hire Date <input type="date" name="hire_date" value="<?php echo $jb_row[ 'hire_date' ]; ?>" required></p>
      <button>Edit</button>
    </form>
  </body>
</html>

employees_update.php

  • employees_edit.php에서 값을 수정하고 Edit 버튼을 클릭했을 때 이동하는 페이지입니다.
  • UPDATE 문으로 값을 수정합니다.
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Update Employee</title>
    <style>
      body {
        font-family: Consolas, monospace;
        font-family: 12px;
      }
    </style>
  </head>
  <body>
    <?php
      $emp_no = $_POST[ 'emp_no' ];
      $birth_date = $_POST[ 'birth_date' ];
      $first_name = $_POST[ 'first_name' ];
      $last_name = $_POST[ 'last_name' ];
      $gender = $_POST[ 'gender' ];
      $hire_date = $_POST[ 'hire_date' ];
      if ( is_null( $emp_no ) ) {
        echo '<h1>Fail!</h1>';
      } else {
        $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
        $jb_sql = "UPDATE employees SET birth_date = '$birth_date', first_name = '$first_name', last_name = '$last_name', gender = '$gender', hire_date = '$hire_date' WHERE emp_no = $emp_no;";
        mysqli_query( $jb_conn, $jb_sql );
        echo '<h1>Success!</h1>';
      }
    ?>
    <p>
      <a href="employees.php">Employees Lists</a>
      <a href="employees_add.php">Add Employee</a>
     </p>
  </body>
</html>

Related Posts

PHP / MariaDB / 데이터베이스에서 데이터 삭제하기

PHP / MariaDB / 데이터베이스에서 데이터 삭제하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기) 직원 추가 데이터베이스에 데이터 입력하기 강좌에 있는 방식으로 직원을 추가합니다. 연봉, 직책 등이 연결된 기존 직원을 삭제하면 문제가 생길 수 있으므로, 새로 직원을 추가한 후 그 직원을 삭제합니다. 직원 삭제하기 – employees.php 직원 정보를 출력하는 페이지에 직원을 삭제하는 기능을 추가해보겠습니다. Delete 버튼을 클릭하면 바로 삭제되고 페이지가 다시 ...

PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

PHP / $_GET, $_POST - 양식(form)으로 전송된 데이터 받기

GET과 POST HTML의 form을 이용하여 값을 전송하는 방식은 get과 post 두 가지가 있습니다. PHP로 그 값을 받아서 사용하는 방법을 알아봅니다. GET 방식으로 전송한 경우 다음은 GET 방식으로 값을 전송하는 간단한 예제입니다. form.php <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>HTML</title> <style> * { ...

PHP / 함수 / substr() / 문자열의 일부분을 추출하는 함수

PHP / 함수 / substr() / 문자열의 일부분을 추출하는 함수

개요 substr()은 문자열의 일부분을 추출하는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 substr( string, start ) string : 추출의 대상이 되는 문자열입니다. start : 추출을 시작하는 위치입니다. length : 추출할 문자의 개수입니다. 값이 없으면 문자열의 끝까지 추출합니다. 음수일 때는 위치를 뜻하고, 그 위치 앞까지의 문자를 추출합니다. substr( 'abcdefg', 3 ); abcdefg에서 3 위치의 문자는 d입니다. ...

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

PHP / Ubuntu / Apache / HTML 확장자에도 PHP 코드 인식되도록 설정하는 방법

Ubuntu에 Apache로 웹서버를 만들고 PHP를 사용할 수 있게 만든 경우, 기본적으로 확장자가 php인 경우에만 PHP 코드를 인식합니다. 만약 확장자가 html일 때로 PHP 코드가 인식되도록 하고 싶다면, Apache 설정을 바꿔줘야 합니다. /etc/apache2/mods-enabled/mime.conf 파일을 엽니다. 다음 코드를 추가합니다. AddType application/x-httpd-php .html 확장자가 htm인 경우에도 PHP를 인식하도록 하고 싶다면 다음처럼 합니다. AddType application/x-httpd-php .html .htm 웹서버를 다시 로드합니다. service apache2 ...

PHP / 문법

PHP / 문법

HTML 문서에 PHP 코드 넣기 PHP 코드는 HTML 문서에 넣습니다. 이를 실행하기 위해서는 어느 부분이 PHP 코드인지 알려줘야 합니다. PHP 코드 부분을 명시하기 위한 방법은 여러 가지가 있는데, 보통 방법 1을 사용합니다. 방법 1 <?php와 ?> 사이에 PHP 코드를 넣습니다. <?php // PHP Code ?> 가장 일반적인 방법입니다. 방법 2 스크립트 태그를 이용하는 방법입니다. <script language="php"> // ...

PHP / 함수 / strip_tags() / 문자열에서 HTML 태그와 PHP 태그 제거하는 함수

PHP / 함수 / strip_tags() / 문자열에서 HTML 태그와 PHP 태그 제거하는 함수

개요 strip_tags는 문자열에서 HTML 태그와 PHP 태그 제거하는 함수입니다. PHP 4 이상에서 사용할 수 있습니다. 문법 strip_tags ( string $str ) allowable_tags로 제거하지 않을 태그를 정할 수 있습니다. 예를 들어 strip_tags( '<p>Lorem <strong>Ipsum</strong></p>' ) 는 모든 태그를 제거합니다. strip_tags( '<p>Lorem <strong>Ipsum</strong></p>', '<strong>' ) 은 strong 태그를 제외한 나머지 태그를 제거합니다. 예제 <!doctype html> <html lang="ko"> <head> ...

PHP / 연산자 / 증가 연산자, 감소 연산자

PHP / 연산자 / 증가 연산자, 감소 연산자

++$a 값을 증가시킨 후 $a를 반환합니다. 예를 들어 $a = 1; echo ++$a; 는 2를 출력합니다. $a++ $a를 반환한 후 값을 증가시킵니다. 예를 들어 $a = 1; echo $a++; 은 1을 출력하고, $a의 값은 2가 됩니다. –$a 값을 감소시킨 후 $a를 반환합니다. 예를 들어 $a = 1; echo --$a; 는 0을 출력합니다. $a– $a를 반환한 후 값을 감소시킵니다. 예를 들어 $a = 1; echo $a--; 는 1을 출력하고, $a의 값은 0이 됩니다. 알파벳 알파벳도 증가 ...

PHP / 연산자 / 논리 연산자

PHP / 연산자 / 논리 연산자

$a and $b $a와 $b가 모두 TRUE이면 TRUE를 반환합니다. $a or $b $a 또는 $b가 TRUE이면 TRUE를 반환합니다. 주의할 점은 둘 다 TRUE일 때도 TRUE라는 것입니다. 즉, 둘 다 FALSE일 때만 FALSE입니다. $a xor $b $a와 $b 중 하나만 TRUE일 때만 TRUE를 반환합니다. ! $a $a가 TRUE가 아니면 TRUE를 반환합니다. $a && $b $a와 $b가 모두 TRUE이면 TRUE를 반환합니다. $a ...

PHP / MariaDB / 데이터베이스에 데이터 입력하기

PHP / MariaDB / 데이터베이스에 데이터 입력하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기) 폼(Form) 만들기 – employees_add.php 데이터를 입력할 폼을 만듭니다.(number, date 타입과 required는 HTML5부터 지원합니다.) 값은 employees_insert.php로 전송됩니다. <form action="employees_insert.php" method="POST"> <p><input type="number" name="emp_no" placeholder="NO" required></p> <p><input type="date" name="birth_date" required></p> <p><input type="text" name="first_name" placeholder="First Name" required></p> <p><input type="text" name="last_name" placeholder="Last Name" required></p> <p><select name="gender" ...

PHP / 함수 / empty() / 비어있는 변수인지 검사하는 함수

PHP / 함수 / empty() / 비어있는 변수인지 검사하는 함수

개요 empty로 변수가 비어있는지 검사합니다. PHP 4 이상에서 사용할 수 있습니다. 문법 empty( $var ) $var가 비어있는지 검사하고, 비어있다면 TRUE, 비어있지 않다면 FALSE를 반환합니다. 다음을 비어있는 것으로 판단합니다. “” (빈 문자열) 0 (정수 0) “0” (문자열 0) NULL FALSE array() (빈 배열) var $var; (클래스 안에서 값 없이 선언된 변수) 예제 <!doctype html> <html lang="ko">   <head>     <meta charset="utf-8">     <title>Coding Factory</title>     <style>       p {         font-family: "Times New ...

PHP 강좌