최근 PHP를 사용하여 간단한 공지사항을 만들 수 있는 방법에 대하여 알려주면서 이를 정리해보았습니다. 공지사항이지만 조금만 응용하면 바로 게시판 역시 만들 수 있을거라 생각합니다.
아래의 수준은 HTML, CSS를 알고 클라이언트단의 UI만 구축할 수 있는 정도의 수준에서 설명하려 합니다. 이미 알고 계시는 부분이 있다면 양해바랍니다^^
! 그럼 DB는 어떻게 구축해야하는가?DB가 있다면 우리는 그 곳에 원하는 정보를 저장하거나 읽을 수 있을 것입니다. 그리고 php는 APM이 잘 알려져있고 가장 손쉽게 구축할 수 있으니 APM의 M에 해당하는 MySQL을 기준으로 설명합니다. 그럼 이제 우리가 해야할 일이 대략적으로 나왔군요. 이를 간단하게 적어보면...
php와 데이터베이스를 구축하는 과정은 인터넷을 찾아보시거나 APM을 사용하여 이미 구축하였다고 가정합니다. 세세한 설정 부분을 설명하려면 너무 길어질 것 같아 생략하오니 양해 부탁드립니다. 그럼 위에서부터 하나하나 알아볼까요? ^^ 먼저 html입니다.
! 1부터 4까지 html, css, php아래의 코드는 html을 작성하고 php를 사용하는 부분입니다. html 안에 php를 사용할 수 있우며아래처럼 <?php로 시작하는 부분이 바로 php가 선언된 부분입니다.
- notice.html
여기까지는 매우 간단하죠? 이제 php가 database와 연결되어 공지사항을 불러오면 되겠습니다. 그럼 php에서 db, 데이터베이스는 어떻게 연결할까요?
! php에서 db, MySQL 연결하여 데이터 가져오기데이터베이스에 연결하기 위한 방법으로 mysqli_connect()를 사용할 수 있습니다.
위에서는 데이터베이스를 연결하는 코드입니다. MySQL에 설정된 계정으로 접근할 수 있도록 함수의 인자에 맞는 정보를 입력합니다. 정상적으로 연결된 경우 선언된 변수 $dbc를 사용하여 데이터베이스의 정보를 가져오거나 저장 등등 여러가지 수행이 가능합니다. 아래에서는 데이터베이스에서 원하는 값만 불러오도록 하겠습니다.
! 데이터베이스 관련 용어정리아래의 용어들은 데이터베이스, 특히 관계형 데이터베이스(RDB 또는 RDBMS)에서 자주 사용되는 용어입니다.
데이터베이스 : DB에 저장되며 php에서 연결할 때 사용하는 db이름
테이블 : 데이터베이스 안에는 여러개의 테이블을 가질 수 있음. 예를들어 게시판 테이블, 공지사항 테이블, 방문자 테이블 등등을 만들어 사용 가능함
컬럼(필드) : Column, Field 영역은 데이터를 구분할 수 있는 기준이 됨. 공지사항은 id, date, title 세개의 컬럼을 갖으려함 (물론 더 많은 컬럼을 갖을 수 있습니다!)
레코드 : 하나의 셀. db에서 사용되는 데이터의 최소 단위 값
(예. 2002-01-01 <- 날짜가 date 컬럼 레코드로 저장됨)
(예2. 3 <- 3이라는 숫자가 id 컬럼 중 하나의 레코드로 저장됨)
APM을 사용하였다면 phpmyadmin을 사용할 수 있으며 여기서는 데이터베이스를 조작할 수 있는 인터페이스를 제공합니다. 여기서는 쿼리문 없이 데이터베이스를 만들거나 테이블을 만들 수도 있고 값을 넣을 수 있습니다. 아래서는 이런 방법으로 데이터베이스가 만들어졌다고 가정하여 다음과 테이블을 만들었습니다.
* Database : webisfree
* table name : notice
=============================
id | date | title
-------------------------------------------------
1 | 2017-09-22 | 공지사항 만드는 중
=============================
# php에서 데이터베이스 불러와 보여주기
이제 마지막 과정입니다. 위에서 데이터베이스를 php에 연결했으며 이제 notice 테이블의 내용을 불러와 화면에 보여주는 과정이 남았습니다.
! 데이터베이스를 불러오기 위한 쿼리문 적용
데이터베이스를 조작하려면 간단한 쿼리(Query)문을 알아야합니다. 아래에는 table의 내용을 가져오는 쿼리문을 알아봅니다. 이때 SELECT 문법을 사용합니다.
위 쿼리문은 notice테이블의 모든 정보를 읽어옵니다. 그럼 이를 php에서 어떻게 적용할까요? 먼저 적용된 쿼리를 본 후 알아보겠습니다.
mysqli_query() 함수는 연결된 데이터베이스에 쿼리를 적용하고 그 결과를 반환합니다. 반환된 값을 $data에 저장하고 이를 배열로 가져와 출력되도록 mysqli_fetch_array() 함수를 적용합니다.
이제 가져온 데이터베이스에서 불러온 데이터가 $rowVal 변수에 저장되었습니다. 이를 보여주기만 하면 모든 과정은 끝입니다^^
이처럼 몇가지 함수들과 간단한 쿼리문을 알면 html에 서버를 구축, 데이터베이스를 만들어 값을 가져올 수 있습니다.
아래의 수준은 HTML, CSS를 알고 클라이언트단의 UI만 구축할 수 있는 정도의 수준에서 설명하려 합니다. 이미 알고 계시는 부분이 있다면 양해바랍니다^^
# PHP를 사용하여 공지사항을 어떻게 만들 것인가?
공지사항을 만드려면 자료 구조, 데이터의 저장에 대한 고민이 선행되어야합니다. php는 서버를 구동하여 방문자의 접근이 가능한 환경을 구축할 뿐 데이터의 저장은 데이터베이스, db의 구축이 필요합니다.! 그럼 DB는 어떻게 구축해야하는가?DB가 있다면 우리는 그 곳에 원하는 정보를 저장하거나 읽을 수 있을 것입니다. 그리고 php는 APM이 잘 알려져있고 가장 손쉽게 구축할 수 있으니 APM의 M에 해당하는 MySQL을 기준으로 설명합니다. 그럼 이제 우리가 해야할 일이 대략적으로 나왔군요. 이를 간단하게 적어보면...
- 1. html, css를 사용한 공지사항 만들기
- 2. php 서버 구축하기
- 3. DATABASE 구축하기
- 4. html에 php 코드를 작성하기
- 5. php에서 데이터베이스 불러오기, 저장하기
php와 데이터베이스를 구축하는 과정은 인터넷을 찾아보시거나 APM을 사용하여 이미 구축하였다고 가정합니다. 세세한 설정 부분을 설명하려면 너무 길어질 것 같아 생략하오니 양해 부탁드립니다. 그럼 위에서부터 하나하나 알아볼까요? ^^ 먼저 html입니다.
! 1부터 4까지 html, css, php아래의 코드는 html을 작성하고 php를 사용하는 부분입니다. html 안에 php를 사용할 수 있우며아래처럼 <?php로 시작하는 부분이 바로 php가 선언된 부분입니다.
- notice.html
<h3>공지사항 보기</h3>
<div>
<?php
// 데이터베이스 불러와 연결하기
?>
</div>
<div>
<?php
// 데이터베이스 불러와 연결하기
?>
</div>
여기까지는 매우 간단하죠? 이제 php가 database와 연결되어 공지사항을 불러오면 되겠습니다. 그럼 php에서 db, 데이터베이스는 어떻게 연결할까요?
! php에서 db, MySQL 연결하여 데이터 가져오기데이터베이스에 연결하기 위한 방법으로 mysqli_connect()를 사용할 수 있습니다.
<?php
$dbc = mysqli_connect(localhost, userName, password, databaseName, port);
?>
$dbc = mysqli_connect(localhost, userName, password, databaseName, port);
?>
위에서는 데이터베이스를 연결하는 코드입니다. MySQL에 설정된 계정으로 접근할 수 있도록 함수의 인자에 맞는 정보를 입력합니다. 정상적으로 연결된 경우 선언된 변수 $dbc를 사용하여 데이터베이스의 정보를 가져오거나 저장 등등 여러가지 수행이 가능합니다. 아래에서는 데이터베이스에서 원하는 값만 불러오도록 하겠습니다.
# 데이터베이스 구축 및 설계
조금 늦은 감이 있지만 불러올 db에 내용이 없군요; 데이터베이스를 만들고 테이블을 만드는 부분이 선행되야합니다. 용어를 잠시 설명하면...! 데이터베이스 관련 용어정리아래의 용어들은 데이터베이스, 특히 관계형 데이터베이스(RDB 또는 RDBMS)에서 자주 사용되는 용어입니다.
데이터베이스 : DB에 저장되며 php에서 연결할 때 사용하는 db이름
테이블 : 데이터베이스 안에는 여러개의 테이블을 가질 수 있음. 예를들어 게시판 테이블, 공지사항 테이블, 방문자 테이블 등등을 만들어 사용 가능함
컬럼(필드) : Column, Field 영역은 데이터를 구분할 수 있는 기준이 됨. 공지사항은 id, date, title 세개의 컬럼을 갖으려함 (물론 더 많은 컬럼을 갖을 수 있습니다!)
레코드 : 하나의 셀. db에서 사용되는 데이터의 최소 단위 값
(예. 2002-01-01 <- 날짜가 date 컬럼 레코드로 저장됨)
(예2. 3 <- 3이라는 숫자가 id 컬럼 중 하나의 레코드로 저장됨)
APM을 사용하였다면 phpmyadmin을 사용할 수 있으며 여기서는 데이터베이스를 조작할 수 있는 인터페이스를 제공합니다. 여기서는 쿼리문 없이 데이터베이스를 만들거나 테이블을 만들 수도 있고 값을 넣을 수 있습니다. 아래서는 이런 방법으로 데이터베이스가 만들어졌다고 가정하여 다음과 테이블을 만들었습니다.
* Database : webisfree
* table name : notice
=============================
id | date | title
-------------------------------------------------
1 | 2017-09-22 | 공지사항 만드는 중
=============================
# php에서 데이터베이스 불러와 보여주기
이제 마지막 과정입니다. 위에서 데이터베이스를 php에 연결했으며 이제 notice 테이블의 내용을 불러와 화면에 보여주는 과정이 남았습니다.
! 데이터베이스를 불러오기 위한 쿼리문 적용
데이터베이스를 조작하려면 간단한 쿼리(Query)문을 알아야합니다. 아래에는 table의 내용을 가져오는 쿼리문을 알아봅니다. 이때 SELECT 문법을 사용합니다.
SELECT * FROM notice;
위 쿼리문은 notice테이블의 모든 정보를 읽어옵니다. 그럼 이를 php에서 어떻게 적용할까요? 먼저 적용된 쿼리를 본 후 알아보겠습니다.
<?php
// DB connection
$dbc = mysqli_connect(localhost, userName, password, databaseName, port);
$query = 'SELECT * FROM notice';
$data = mysqli_query($dbc, $query);
$rowVal = mysqli_fetch_array($data);
?>
// DB connection
$dbc = mysqli_connect(localhost, userName, password, databaseName, port);
$query = 'SELECT * FROM notice';
$data = mysqli_query($dbc, $query);
$rowVal = mysqli_fetch_array($data);
?>
mysqli_query() 함수는 연결된 데이터베이스에 쿼리를 적용하고 그 결과를 반환합니다. 반환된 값을 $data에 저장하고 이를 배열로 가져와 출력되도록 mysqli_fetch_array() 함수를 적용합니다.
이제 가져온 데이터베이스에서 불러온 데이터가 $rowVal 변수에 저장되었습니다. 이를 보여주기만 하면 모든 과정은 끝입니다^^
# html에서 php 출력하기
html에서 php를 출력하는 방법으로 표현식을 사용하거나 echo 키워드를 이용할 수도 있습니다. 아래서는 echo문을 사용하여 읽어온 데이터를 html에 출력, 브라우저에서 볼 수 있도록 해보려합니다. 마지막 과정입니다!<h3>공지사항 보기</h3>
<table>
<?php
$dbc = mysqli_connect(localhost, userName, password, 'webisfree');
$query = 'SELECT * FROM notice';
$data = mysqli_query($dbc, $query);
while($rowVal = mysqli_fetch_array($data)) {
echo '<tr>';
echo '<td>ID: '.$rowVal('id').'</td>';
echo '<td>Title: '.$rowVal('title').'</td>';
echo '</tr>'
?>
</table>
테이블로 보여주는 것이 좋을 것 같아 table태그를 사용하여 출력해 보았습니다. 여기까지 모든 과정이 끝났으며 원하는 공지사항이 출력되었습니다^^<table>
<?php
$dbc = mysqli_connect(localhost, userName, password, 'webisfree');
$query = 'SELECT * FROM notice';
$data = mysqli_query($dbc, $query);
while($rowVal = mysqli_fetch_array($data)) {
echo '<tr>';
echo '<td>ID: '.$rowVal('id').'</td>';
echo '<td>Title: '.$rowVal('title').'</td>';
echo '</tr>'
?>
</table>
이처럼 몇가지 함수들과 간단한 쿼리문을 알면 html에 서버를 구축, 데이터베이스를 만들어 값을 가져올 수 있습니다.
Author ByEnSSo
네. 도움이 되었어요
아니요. 별로에요