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

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

employees 출력하기

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

데이터베이스 연결 정보

employees 데이터베이스에 연결하기 위한 정보를 입력합니다. localhost, 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
'<p>'
. $jb_row[ 'emp_no' ]
. $jb_row[ 'first_name' ]
. $jb_row[ 'last_name' ]
. $jb_row[ 'hire_date' ]
. '</p>'
;
}
?>
</tbody>
</table>
</body>
</html>

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

결과가 하나인 경우

다음의 쿼리는 first_name이 Georgi인 사람의 수를 구하는 것입니다. 따라서 결과가 숫자 하나로 나옵니다.

SELECT COUNT( emp_no ) AS Number
FROM employees
WHERE first_name = 'Georgi'
;

그런 경우 while 문을 사용하지 않고 바로 출력할 수 있습니다.

<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>PHP</title>
<style>
body {
font-family: Consolas, monospace;
}
</style>
</head>
<body>
<?php
error_reporting( E_ALL ); ini_set( "display_errors", 1 );
$db_conn = mysqli_connect( 'localhost', 'codingfactory', '1qaz2wsx!@', 'employees' );
$sql = "
SELECT COUNT( emp_no ) AS Number
FROM employees
WHERE first_name = 'Georgi'
;
;";
$result = mysqli_query( $db_conn, $sql );
$row = mysqli_fetch_array( $result );
echo $row[ "Number" ];
?>
</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>

 

[출처] https://www.codingfactory.net/11405

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
158 [php 응용개발] XE 템플릿 문법 file 졸리운_곰 2025.05.16 90
157 [php] PHP 보안강화 하기 졸리운_곰 2025.04.27 58
156 [php] php 와 javascript 차이 & 상호 간의 호출 방법 file 졸리운_곰 2024.08.13 99
155 [php] html 파일안의 php 코드 실행하기 : Apache 2 server on ubuntu can't parse php code inside html file 졸리운_곰 2024.08.13 86
154 [php] 리눅스 (유닉스 ) 계열에서 php로 마이크로소프트 MS SQL 서버 접속 : Microsoft Drivers for PHP for SQL Server의 Linux 및 macOS 설치 자습서 졸리운_곰 2024.08.07 89
153 PHP 실행 지연(delay) 시키기 졸리운_곰 2024.07.07 86
152 [PHP] 문자열 비교하기 - ===, strcmp(), strcasecmp(), strncmp() 졸리운_곰 2024.07.07 117
151 [PHP] 외부 URL의 내용 얻어오기(cURL, file_get_contents) 졸리운_곰 2024.07.07 282
150 [PHP] CURL를 활용하여 POST방식으로 JSON데이터 주고 받기 졸리운_곰 2024.06.21 138
149 [MySQL+PHP] MySQL 접속후 데이터 가져오기 졸리운_곰 2024.04.18 109
148 [php] [xampp] xampp php 버전 폴더 (디렉토리) 별 설정 : Running multiple PHP versions on XAMPP file 졸리운_곰 2024.03.21 1067
147 [php] [PHP] Laravel - PayPal 결제 모듈 연동하기 (2) - 백엔드 처리 file 졸리운_곰 2024.03.17 102
146 [php] [PHP] Laravel - PayPal 결제 모듈 연동하기 (1) file 졸리운_곰 2024.03.17 199
145 [php] PHP - Show JSON array in html table 졸리운_곰 2024.02.18 81
144 [php] php / string을 json으로 변환 한 뒤 값 가져오기 졸리운_곰 2024.02.18 107
143 [php] Low Code Web Content Server: Making Marks on the Digital Shore. An Anecdotal View. : 로우 코드 웹 콘텐츠 서버: 디지털 해안에 흔적을 남기다. 일화적인 견해. file 졸리운_곰 2024.02.18 90
142 [php] [xampp] [php] php의 mail() 함수로 구글 이메일 보내기 / XAMPP 서버 및 aws의 EC2 / php mail function to send Gmail at XAMPP and AWS EC2 not working / Username and Password not accepted. file 졸리운_곰 2023.09.12 154
» [php] PHP / MariaDB / 데이터베이스 값 가져와서 출력하기 졸리운_곰 2023.06.22 91
140 [php] Start Using HTML5 WebSockets Today With a PHP Server 지금 PHP 서버에서 HTML5 WebSocket 사용 시작 졸리운_곰 2023.05.09 143
139 [php] json_encode 유니코드 한글 깨짐 해결방법 졸리운_곰 2023.02.04 157
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED