PHP / MariaDB / 데이터베이스 값 가져와서 출력하기

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

employees 출력하기 - employees.php

employees 테이블에는 직원 목록이 있습니다. 그 목록을 가져와서 출력해보겠습니다.

데이터베이스 연결 정보

employees 데이터베이스에 연결하기 위한 정보를 입력합니다. username과 password는 적절히 변경하세요.

$jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );

쿼리 작성하기

employees 테이블에서 5개의 레코드를 가져오는 쿼리입니다.

$jb_sql = "SELECT * FROM employees LIMIT 5;";

값 저장하기

쿼리 결과를 담습니다.

$jb_result = mysqli_query( $jb_conn, $jb_sql );

출력하기

필요한 필드를 출력합니다.

while( $jb_row = mysqli_fetch_array( $jb_result ) ) {
  echo '<p>' . $jb_row[ 'emp_no' ] . $jb_row[ 'first_name' ] . $jb_row[ 'last_name' ] . $jb_row[ 'hire_date' ] . '</p>';
}

전체 코드

<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Employees</title>
  </head>
  <body>
    <?php
      $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
      $jb_sql = "SELECT * FROM employees LIMIT 5;";
      $jb_result = mysqli_query( $jb_conn, $jb_sql );
      while( $jb_row = mysqli_fetch_array( $jb_result ) ) {
        echo '<p>' . $jb_row[ 'emp_no' ] . $jb_row[ 'first_name' ] . $jb_row[ 'last_name' ] . $jb_row[ 'hire_date' ] . '</p>';
      }
    ?>
  </body>
</html>

표로 만들기

표로 출력하도록 변경한 코드입니다. HTML과 CSS만 바뀌었을 뿐, 데이터베이스를 불러오고 출력하는 것은 위와 같습니다.

<!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;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>emp_no</th>
          <th>first_name</th>
          <th>last_name</th>
          <th>hire_date</th>
        </tr>
      </thead>
      <tbody>
        <?php
          $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
          $jb_sql = "SELECT * FROM employees LIMIT 5;";
          $jb_result = mysqli_query( $jb_conn, $jb_sql );
          while( $jb_row = mysqli_fetch_array( $jb_result ) ) {
            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></tr>';
          }
        ?>
      </tbody>
    </table>
  </body>
</html>

연봉 출력하기 - salaries.php

salaries 테이블에는 연봉 정보가 있습니다. 직원은 emp_no로 연결되어 있습니다.

MariaDB [employees]> SELECT * FROM salaries LIMIT 5;
+--------+--------+------------+------------+
| emp_no | salary | from_date  | to_date    |
+--------+--------+------------+------------+
|  10001 |  60117 | 1986-06-26 | 1987-06-26 |
|  10001 |  62102 | 1987-06-26 | 1988-06-25 |
|  10001 |  66074 | 1988-06-25 | 1989-06-25 |
|  10001 |  66596 | 1989-06-25 | 1990-06-25 |
|  10001 |  66961 | 1990-06-25 | 1991-06-25 |
+--------+--------+------------+------------+
5 rows in set (0.00 sec)

emp_no 대신에 직원 이름을 출력하려면 JOIN을 이용합니다.

MariaDB [employees]> SELECT first_name, last_name, salary, from_date, to_date FROM salaries LEFT JOIN employees ON salaries.emp_no = employees.emp_no LIMIT 20;
+------------+-----------+--------+------------+------------+
| first_name | last_name | salary | from_date  | to_date    |
+------------+-----------+--------+------------+------------+
| Georgi     | Facello   |  60117 | 1986-06-26 | 1987-06-26 |
| Georgi     | Facello   |  62102 | 1987-06-26 | 1988-06-25 |
| Georgi     | Facello   |  66074 | 1988-06-25 | 1989-06-25 |
| Georgi     | Facello   |  66596 | 1989-06-25 | 1990-06-25 |
| Georgi     | Facello   |  66961 | 1990-06-25 | 1991-06-25 |
| Georgi     | Facello   |  71046 | 1991-06-25 | 1992-06-24 |
| Georgi     | Facello   |  74333 | 1992-06-24 | 1993-06-24 |
| Georgi     | Facello   |  75286 | 1993-06-24 | 1994-06-24 |
| Georgi     | Facello   |  75994 | 1994-06-24 | 1995-06-24 |
| Georgi     | Facello   |  76884 | 1995-06-24 | 1996-06-23 |
| Georgi     | Facello   |  80013 | 1996-06-23 | 1997-06-23 |
| Georgi     | Facello   |  81025 | 1997-06-23 | 1998-06-23 |
| Georgi     | Facello   |  81097 | 1998-06-23 | 1999-06-23 |
| Georgi     | Facello   |  84917 | 1999-06-23 | 2000-06-22 |
| Georgi     | Facello   |  85112 | 2000-06-22 | 2001-06-22 |
| Georgi     | Facello   |  85097 | 2001-06-22 | 2002-06-22 |
| Georgi     | Facello   |  88958 | 2002-06-22 | 9999-01-01 |
| Bezalel    | Simmel    |  65828 | 1996-08-03 | 1997-08-03 |
| Bezalel    | Simmel    |  65909 | 1997-08-03 | 1998-08-03 |
| Bezalel    | Simmel    |  67534 | 1998-08-03 | 1999-08-03 |
+------------+-----------+--------+------------+------------+
20 rows in set (0.00 sec)

다음은 이름과 함께 연봉을 출력하는 예제입니다.

<!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;
      }
    </style>
  </head>
  <body>
    <table>
      <thead>
        <tr>
          <th>first_name</th>
          <th>last_name</th>
          <th>salary</th>
          <th>from_date</th>
          <th>to_date</th>
        </tr>
      </thead>
      <tbody>
        <?php
          $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' );
          $jb_sql = "SELECT * FROM salaries LEFT JOIN employees ON salaries.emp_no = employees.emp_no LIMIT 20;";
          $jb_result = mysqli_query( $jb_conn, $jb_sql );
          while( $jb_row = mysqli_fetch_array( $jb_result ) ) {
            echo '<tr><td>' . $jb_row[ 'first_name' ] . '</td><td>'. $jb_row[ 'last_name' ] . '</td><td>' . $jb_row[ 'salary' ] . '</td><td>' . $jb_row[ 'from_date' ] . '</td><td>' . $jb_row[ 'to_date' ] . '</td></tr>';
          }
        ?>
      </tbody>
    </table>
  </body>
</html>

Related Posts

PHP / 조건문 / if, elseif, else

PHP / 조건문 / if, elseif, else

if 설명 if로 조건을 만족할 때 실행할 작업을 정할 수 있습니다. 문법 if ( condition ) { statement; } condition이 TRUE이면 statement을 실행하고, FALSE이면 실행하지 않습니다. 중괄호 대신 콜론과 endif를 이용할 수도 있습니다. if ( condition ): statement; endif; 예제 <!doctype html> <html lang="ko"> <head> <meta charset="utf-8"> <title>Coding Factory</title> <style> ...

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

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

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

PHP / 함수 / md5() / 문자열에서 md5 해시값 생성하는 함수

PHP / 함수 / md5() / 문자열에서 md5 해시값 생성하는 함수

개요 md5()는 문자열에서 md5 해시값을 생성하는 함수입니다. 해시값에서 원래의 문자열을 만들지는 못합니다. 문자열이 같다면 같은 해시값을 만드므로, 비밀번호를 암호화하여 저장하는 용도로는 맞지 않습니다. It is not recommended to use this function to secure passwords, due to the fast nature of this hashing algorithm. 문법 md5( string $str ) str : ...

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 / 회원 관리 / 세션(SESSION) 추가하기, 로그아웃 페이지

PHP / 회원 관리 / 세션(SESSION) 추가하기, 로그아웃 페이지

login.php 로그인 한 상태인지 로그인 하지 않은 상태인지 파악하기 위해 login-ok.php로 넘어가기 전에 세션을 시작합니다. 그리고 username을 $_SESSION에 담습니다. <?php $username = $_POST; $password = $_POST; if ( !is_null( $username ) ) { $jb_conn = mysqli_connect( 'localhost', 'codingfactory', '1234qwer', 'codingfactory.net_example' ...

PHP / Session / 세션 값 출력하는 방법

PHP / Session / 세션 값 출력하는 방법

세션(Session)에 값을 저장했을 때, 그 값을 출력하는 방법을 간단한 예제로 알아보겠습니다. 세션을 초기화합니다. 이때 id가 하나 발급됩니다. session_start(); 세션의 no에 123을, username에 abc를 저장합니다. $_SESSION = 123; $_SESSION = 'abc'; 세션의 id를 출력합니다. echo session_id(); 세션의 no의 값을 출력합니다. echo $_SESSION; 세선의 username의 값을 출력합니다. echo $_SESSION; 세션의 모든 값을 출력합니다. var_dump( $_SESSION ); 다음은 전체 ...

PHP / MariaDB / 데이터베이스 값 가져와서 출력하기

PHP / MariaDB / 데이터베이스 값 가져와서 출력하기

이 강좌에서 사용하는 데이터베이스는 employees입니다. (employees 설치 하기) employees 출력하기 - employees.php employees 테이블에는 직원 목록이 있습니다. 그 목록을 가져와서 출력해보겠습니다. 데이터베이스 연결 정보 employees 데이터베이스에 연결하기 위한 정보를 입력합니다. username과 password는 적절히 변경하세요. $jb_conn = mysqli_connect( 'localhost', 'username', 'password', 'employees' ); 쿼리 작성하기 employees 테이블에서 5개의 레코드를 가져오는 쿼리입니다. $jb_sql = "SELECT * FROM employees LIMIT 5;"; 값 저장하기 쿼리 ...

PHP / 회원 관리 / 회원 가입 페이지, 회원 가입 완료 페이지

PHP / 회원 관리 / 회원 가입 페이지, 회원 가입 완료 페이지

환경 로컬 서버에 설치된 MariaDB를 사용합니다.(특별한 케이스가 아니라면 MySQL에서도 잘 작동합니다.) 데이터베이스 이름은 codingfactory.net_example, 사용자 이름은 codingfactory, 비밀번호는 1234qwer입니다. 테이블 만들기 id, username, password 세 개의 열을 가진 member 테이블을 만듭니다. id는 자동 증가하는 고유값을 가지는 키입니다. MariaDB > create table member ( -> id INT AUTO_INCREMENT PRIMARY KEY, -> ...

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

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; ...

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 강좌