방명록만들기

Download Report

Transcript 방명록만들기

11장 10분만에 방명록
(guest book) 만들기
>> 목 표 <<
. 전체적인 구성
. MySQL 연동을 위한 계정 부여
. 사용자 글쓰기 폼(<form>) 만들기
. 입력 폼 처리 (MySQL에 글 저장하기)
. 글 목록 보기 (MySQL에서 저장된 글 가져오기)
. Supplied argument 오류
1. 전체적인 구성

Step 0. MySQL에 방명록 저장 창고 계획하여 만들기




Step 1.
Step 2.
Step 3.
Step 4.
방명록 쓰기 : insert.htm
방명록 글을 MySQL에 입력 : insert.php
MySQL에서 글을 가져와 화면에 출력 : list.php
Go to Step 1
2. MySQL연동을 위한 계정 부여


Step 1. 슈퍼 유저로 mysql 마스터 데이터베이스에 접속
Step 2. 사용할 DB 만들기
create database guestbook;

Step 3. db 테이블에 DB의 소유자 및 관련 권한 부여하기
Insert into db values (‘localhost’, ‘guestbook’, ‘visitor’, ‘y’, …, ‘y’);

Step 4. user 테이블에서 소유자의 계정에 패스워드 부여하기
insert into user (host, user, password) values (‘localhost’, ‘visitor’, password(‘hello’));

Step 5. DB와 계정을 만들었을 경우 반드시 mysql 재실행하기
flush privileges;


Step 6. 종료 후 일반 계정으로 접속
Step 7. Guestbook DB안에 테이블 생성
create table guest (name char(20), content text);
3. 사용자 글쓰기 폼 만들기

<< insert.htm >>
4. 입력 폼 처리(MySQL에 글 저장)

<< insert.php >>
<?php
extract($_POST);
$db=mysql_connect("localhost","visitor","hello"); // 데이터베이스 연결
mysql_select_db("guestbook", $db); // 데이터베이스 선택
echo "$name <P>";
echo "$content <P>";
$result=mysql_query("insert into guest values ('$name','$content')", $db);
mysql_close($db);
echo "정상적으로 저장되었습니다.<P>";
echo "<a href=list.php>글 목록 보기</a>";
?>

guest 테이블 구조 및 내용
5. MySQL에서 저장된 글 가져오기

<< list.php >>
<?php
$db = mysql_connect("localhost","visitor","hello");
mysql_select_db("guestbook", $db);
echo "방명록 읽기<P>";
function showguest()
{
// $db 값을 함수에서 사용하기 위한 선언
global $db;
$result=mysql_query("select * from guest", $db);
// mysql_fetch_array는 쿼리한 값을 배열에 저장한다.
// 불려지면 값을 하나씩 증가 시키기 때문에 $row++이 필요 없다.
while($row=mysql_fetch_array($result)) {
echo "이름:$row[name]<P>";
echo "내용:$row[content]<P><hr>\n";
}
mysql_close($db);
}
// 함수를 불러서 MySQL 의 저장된 내용을 가져와 화면에 출력한다.
showguest();
// 앞뒤에 <pre> … </pre>를 사용하기 바람.
?>
6. Supplied argument 오류


데이터베이스의 테이블명이나 칼럼명이 틀렸다는 오류
해결 방법
$sql="select * from guest where code =$a1";
print $sql;
$result = mysql_query($sql);
if(!$result)
{
echo mysql_errno().":";
echo mysql_error()."<br>";
}