Download presentation
1
7장 PHP와 Mysql 연동 한빛미디어(주)
2
학습 목표 데이터베이스를 접속 및 종료 함수의 사용법을 익힌다 데이터베이스를 생성, 삭제, 선택 함수의 사용법을 익힌다
SQL 명령문을 실행하는 함수의 사용법을 익힌다. 레코드 수와 필드 수 계산 함수의 사용법을 익힌다 하나의 레코드 값을 읽어오는 함수의 사용법을 익힌다 폼 문 형식과 입력된 내용이 변수 값으로 전달되는 방식을 익힌다 성적 처리 예제를 통하여 Mysql 함수 사용법을 익힌다
3
주요 학습 내용 01. PHP의 Mysql 관련 함수 02. 폼문과 변수 값 전달 03. 성적 처리 예제
4
【예제 7-1】mysql_connect.php
02 mysql_connect( ) 함수 resource mysql_connect(string hostname [:port], string username, string password); 1 : <? 2 : echo " <h2> mysql_connect 함수 사용하기</h2>"; 3 : $connect = mysql_connect("localhost","php5","1234") 4 : or die(" 접속이 안되네요~~"); 5 : echo ("mysql 서버와 연결되었어요!!!<br>"); 6 : echo $connect; 7 : 8 : mysql_close($connect); 9 : ?>
5
【예제 7-2】mysql_close.php 02 mysql_close( ) 함수 1 : <?
bool mysql_close(resource link_identifier); 1 : <? 2 : echo " <h2> mysql_close함수 사용하기</h2>"; 3 : $connect = mysql_connect("localhost","php5","1234") 4 : or die(" 접속이 안되네요~~"); 5 : echo ("mysql 서버 접속 완료!!!<br>"); 6 : 7 : mysql_close($connect); 8 : echo (" 접속 종료됨"); 9 : ?>
6
【예제 7-3】mysql_create_db.php
02 mysql_create_db( ) 함수 bool mysql_create_db(string database_name, resource link_identifier); 1 : <? 2 : $connect = mysql_connect("localhost","root","1234"); 3 : $dbname = mysql_create_db("sample", $connect); 5 : if (!$dbname) 6 : { echo(" 새로운 데이터베이스 생성에 실패했습니다!!!<br>"); 8 : exit; } 10 : else 11 : echo(" sample 데이터베이스가 생성되었습니다!!!"); 15 : mysql_close($connect); 16 : ?>
7
【예제 7-4】mysql_drop_db.php
02 mysql_drop_db() 함수 bool mysql_drop_db(string database_name , resouce link_identifier); 1 : <? 2 : $connect = mysql_connect("localhost","root","1234"); 3 : $dropdb = mysql_drop_db("sample", $connect); 5 : if (!$dropdb) 6 : { echo("데이터베이스삭제에 실패했습니다!!! <br>"); 8 : exit; } 10 : else 12 : echo("sample 데이터베이스가 삭제되었습니다"); 15 : mysql_close($connect); 16 : ?>
8
【예제 7-5】mysql_select_db.php
02 mysql_select_db( ) 함수 bool mysql_select_db(string database_name, resource link_identifier); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : $db_con = mysql_select_db("php5_db", $connect); 5 : if (!$db_con) 6 : { echo("php5_db 데이터베이스를 선택하는데 실패!!!<br>"); 8 : exit; } 10 : else 12 : echo("php5_db 데이터베이스가 성공적으로 선택되었습니다!!!"); 15 : mysql_close($connect); 16 : ?>
9
【예제 7-6】mysql_query.php 02 mysql_query( ) 함수 1 : <?
resouce mysql_query(string query, resource link_identifier); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : mysql_select_db("php5_db", $connect); 6 : $sql = "create table client ("; 7 : $sql = $sql."name CHAR(12) NOT NULL,"; 8 : $sql = $sql."id CHAR(12) NOT NULL,"; 9 : $sql = $sql." VARCHAR(40),"; 10 : $sql = $sql."sex VARCHAR(4),"; 11 : $sql = $sql."point INT,"; 12 : $sql = $sql."grade VARCHAR(2),"; 13 : $sql = $sql."PRIMARY KEY(id) )"; 15 : $result = mysql_query($sql,$connect);
10
【예제 7-6】mysql_query.php 02 17 : if (!$result) {
18 : echo("client 테이블 생성 실패!!<br>"); 19 : exit; } 21 : else echo("client 테이블 생성 성공!!<br>"); 25 : 26 : $sql = "insert into client values"; 27 : $sql = $sql."('이경희', 'khlee', '여', 30, 90)"; 29 : $result = mysql_query($sql,$connect); 30 : 31 : if (!$result) { 32 : echo(" 레코드 삽입 실패!!"); 33 : exit; } 35 : else echo(" 레코드 삽입 성공!!"); 39 : 40 : mysql_close(); 41 : ?>
11
【예제 7-7】mysql_num_rows.php
02 mysql_num_rows( ) 함수 int mysql_num_rows(resource result); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : mysql_select_db("php5_db", $connect); 5 : $sql = "select * from mem"; 6 : $result = mysql_query($sql, $connect); 8 : $total_records = mysql_num_rows($result); 9 : 10 : echo("mysql_query() 함수의 반환 값 : $result<br>"); 11 : echo("mem 테이블의 전체 레코드 수 : $total_records"); 13 : mysql_close(); 14 : ?>
12
【예제 7-8】mysql_num_fields.php
02 mysql_num_fields( ) 함수 int mysql_num_fields(resource result); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : mysql_select_db("php5_db", $connect); 5 : $sql = "select * from mem"; 6 : $result = mysql_query($sql,$connect); 8 : $total_fields = mysql_num_fields($result); 9 : 10 : echo("mysql_query() 함수의 반환 값 : $result<br>"); 11 : echo("mem 테이블의 전체 필드 수 : $total_fields"); 13 : mysql_close(); 14 : ?>
13
【예제 7-9】mysql_fetch_row.php
02 mysql_fetch_row( ) 함수 array mysql_fetch_row(resource result); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : $db_con = mysql_select_db("php5_db", $connect); 4 : 5 : $sql = "select * from mem"; 6 : $result = mysql_query($sql,$connect); 7 : 8 : $fields = mysql_num_fields($result); 9 : ?>
14
【예제 7-9】mysql_fetch_row.php
02 10 : <h2> mysql_fetch_row() 함수 예제</h2> 11 : <table width= 800 border=1 cellpadding=10> 12 : <tr> 13 : <td bgcolor=lightblue align=center>번호</td> 14 : <td bgcolor=lightblue align=center>아이디</td> 15 : <td bgcolor=lightblue align=center>이름</td> 16 : <td bgcolor=lightblue align=center>성별</td> 17 : <td bgcolor=lightblue align=center>우편번호</td> 18 : <td bgcolor=lightblue align=center>주소</td> 19 : <td bgcolor=lightblue align=center>전화번호</td> 20 : <td bgcolor=lightblue align=center>나이</td> 21 : </tr>
15
【예제 7-9】mysql_fetch_row.php
02 22 : <? 23 : while ( $row = mysql_fetch_row($result)) 24 : { 25 : echo("<tr>"); 26 : 27 : for ($i=0; $i < $fields; $i++) 28 : { 29 : echo("<td> $row[$i] </td>"); 30 : } 31 : 32 : echo("</tr>"); 33 : } 34 : mysql_close(); 35 : ?> 36 : </table>
16
【예제 7-10】mysql_fetch_array.php
array mysql_fetch_array(resource result); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : $db_con = mysql_select_db("php5_db", $connect); 4 : 5 : $sql = "select * from mem"; 6 : $result = mysql_query($sql,$connect); 7 : 8 : $fields = mysql_num_fields($result); 9 : ?> 10 : <h2> mysql_fetch_array() 함수 예제</h2> 11 : <table width= 800 border=1 cellpadding=10>
17
【예제 7-10】mysql_fetch_array.php
11 : <table width= 800 border=1 cellpadding=10> 12 : <tr> 13 : <td bgcolor=lightblue align=center>번호</td> 14 : <td bgcolor=lightblue align=center>아이디</td> 15 : <td bgcolor=lightblue align=center>이름</td> 16 : <td bgcolor=lightblue align=center>성별</td> 17 : <td bgcolor=lightblue align=center>우편번호</td> 18 : <td bgcolor=lightblue align=center>주소</td> 19 : <td bgcolor=lightblue align=center>전화번호</td> 20 : <td bgcolor=lightblue align=center>나이</td> 21 : </tr>
18
【예제 7-10】mysql_fetch_array.php
22 : <? 23 : while ( $row = mysql_fetch_array($result)) 24 : { 25 : echo("<tr>"); 27 : echo("<td> $row[num] </td>"); 28 : echo("<td> $row[id] </td>"); 29 : echo("<td> $row[name] </td>"); 30 : echo("<td> $row[sex] </td>"); 31 : echo("<td> $row[post_num] </td>"); 32 : echo("<td> $row[address] </td>"); 33 : echo("<td> $row[tel] </td>"); 34 : echo("<td> $row[age] </td>"); 36 : echo("</tr>"); 37 : } 38 : mysql_close(); 39 : ?> 40 : </table>
19
【예제 7-11】mysql_result.php
02 mysql_result( ) 함수 mixed mysql_result(resource result, int row, mixed field); 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : $db_con = mysql_select_db("php5_db", $connect); 4 : 5 : $sql = "select * from mem"; 6 : $result = mysql_query($sql,$connect); 7 : 8 : $records = mysql_num_rows($result); 9 : 10 : $fields = mysql_num_fields($result); 11 : ?>
20
【예제 7-11】mysql_result.php
02 12 : <h2> mysql_result() 함수 예제</h2> 13 : <table width= 800 border=1 cellpadding=10> 14 : <tr> 15 : <td bgcolor=lightblue align=center>번호</td> 16 : <td bgcolor=lightblue align=center>아이디</td> 17 : <td bgcolor=lightblue align=center>이름</td> 18 : <td bgcolor=lightblue align=center>성별</td> 19 : <td bgcolor=lightblue align=center>우편번호</td> 20 : <td bgcolor=lightblue align=center>주소</td> 21 : <td bgcolor=lightblue align=center>전화번호</td> 22 : <td bgcolor=lightblue align=center>나이</td> 23 : </tr>
21
【예제 7-11】mysql_result.php
02 24 : <? 25 : for ($i = 0; $i < $records; $i++) 26 : { 27 : echo("<tr>"); 28 : 29 : for ($j = 0; $j < $fields; $j++) 30 : { 31 : $data = mysql_result($result, $i, $j); 32 : echo("<td> $data </td>"); 33 : } 34 : 35 : echo("</tr>"); 36 : } 37 : mysql_close(); 38 : ?> 39 : </table>
22
【예제 7-12】mem_form.php 02 회원가입 폼 양식 예 1 : <html> 2 : <body>
3 : <form name=mem_form method=post action="mem_print.php?var1=10&var2=join"> 4 : <table border="1" width=682 cellspacing="1" cellpadding="4"> 5 : <tr><td align=right>* 아이디 :</td> 7 : <td><input type=text size=15 maxlength=12 name=id></td></tr> 8 : <tr> <td align=right > * 이름 :</td> 10 : <td><input type=text size=15 maxlength=12 name=name> </td></tr> 11 : <tr> 12 : <td align=right> * 비밀번호 :</td> 13 : <td><input type=password size=10 maxlength=10 14 : name=passwd></td></tr>
23
【예제 7-12】mem_form.php 02 16 : <td align=right> * 비밀번호 확인 :</td> 17 : <td><input type=password size=12 maxlength=12 18 : name=passwd_confirm></td></tr> 19 : <tr> <td align=right>성별 :</td> 21 : <td><input type=radio name=sex value='남성' checked>남 22 : <input type=radio name=sex value='여성'>여</td></tr> 23 : <tr> <td align=right>휴대전화 :</td> 25 : <td><select name=phone1> 26 : <option value=''>선택</option> 27 : <option value='010'>010</option> 28 : <option value='011'>011</option> 29 : <option value='016'>016</option> 33 : </select> - 34 : <input type=text size=4 name=phone2 maxlength=4> - 35 : <input type=text size=4 name=phone3 maxlength=4></td> </tr>
24
【예제 7-12】mem_form.php 02 36 : <tr>
37 : <td align=right>주 소 :</td> 38 : <td><input type=text size=50 name=address></td></tr> 39 : <tr> 40 : <td align=right>취 미 :</td> 41 : <td> 42 : <input type=checkbox name=movie value="yes" checked> 영화감상 43 : <input type=checkbox name=book value="yes" >독서 44 : <input type=checkbox name=shop value="yes" >쇼핑 45 : <input type=checkbox name=sport value="yes" checked>운동 46 : </td></tr> 47 : <tr> 48 : <td align=right>자기소개 :</td> 49 : <td><textarea name=intro rows=5 cols=40></textarea></td> </tr> 50 : </table>
25
【예제 7-12】mem_form.php 02 51 : <br>
52 : <table border=0 width=682> 53 : <tr><td align=center> 54 : <input type=submit value="확인"> 55 : <input type=reset value="다시작성"></td></tr> 56 : </table> 57 : <input type=hidden name=title value="회원 가입 양식"> 58 : </form> 59 : </body> 60 : </html>
26
【예제 7-13】mem_print.php 02 회원가입 양식 입력된 내용 출력 1 : <?
1 : <? 2 : echo " 1) Post 방식으로 전달"."<br>"; 3 : echo "아이디 : "; 4 : echo $id."<br>"; 5 : echo " 이름 : "; 6 : echo $name."<br>"; 7 : echo " 비밀번호 : "; 8 : echo $passwd."<br>"; 9 : echo " 비밀번호 확인 : "; 10 : echo $passwd_confirm."<br>"; 11 : echo " 성별 : "; 12 : echo $sex."<br>"; 13 : echo " 휴대번호 : "; 14 : echo $phone1."-".$phone2."-".$phone3."<br>";
27
【예제 7-13】mem_print.php 02 15 : echo " 주소 : "; echo $address."<br>"; 17 : echo " 영화감상 : "; echo $movie."<br>"; 19 : echo " 독서 : "; echo $book."<br>"; 21 : echo " 쇼핑 : "; echo $shop."<br>"; 23 : echo " 운동 : "; echo $sport."<br>"; 25 : echo " 자기소개 : "; 26 : echo $intro."<br>"; 27 : echo " 제목(hidden 타입에서 전달) : "; 28 : echo $title."<br>"; 30 : echo " 2) Get 방식으로 전달"."<br>"; 31 : echo " \$var1 : "; 32 : echo $var1."<br>"; 33 : echo " \$var2 : "; 34 : echo $var2."<br>"; 35 : ?>
28
not null, auto_increment,
성적처리 DB 테이블 설계 01 필드 이름 타입 추가 사항 필드 설명 num int not null, auto_increment, primary key 일렬 번호 name varchar(12) 학생 이름 kor 국어 성적 eng 영어 성적 math 수학 성적 sum 총점 avg float 평균 [표 7-2] 성적처리 DB 테이블 구조 (테이블 이름 : student)
29
【예제 7-14】student_table.php
02 DB 테이블 생성 프로그램 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : $dbconn = mysql_select_db("php5_db", $connect); 5 : $sql = "create table student ("; 6 : $sql .= "num int not null auto_increment,"; 7 : $sql .= "name varchar(12),"; 8 : $sql .= "kor int,"; 9 : $sql .= "eng int,"; 10 : $sql .= "math int,"; 11 : $sql .= "sum int,"; 12 : $sql .= "avg float,"; 13 : $sql .= "primary key(num) )"; 14 : 15 : $result = mysql_query($sql, $connect);
30
【예제 7-14】student_table.php
02 17 : if (!$result) 18 : echo "student 테이블 생성 실패 !!!"; 19 : else 20 : echo "student 테이블 생성 성공 !!!"; 21 : 22 : mysql_close(); 23 : ?>
31
【예제 7-15】student_list.php
02 성적처리 메인 프로그램 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); // DB 연결 3 : mysql_select_db("php5_db", $connect); // DB 선택 4 : 5 : if ($mode == "insert") // 데이터 입력하기 6 : { $sum = $kor + $eng + $math; // 합계 구하기 8 : $avg = $sum/3; // 평균 구하기 9 : 10 : $sql = "insert into student (name, kor, eng, math, sum, avg) values"; 11 : $sql .= "('$name', $kor, $eng, $math, $sum, $avg)"; 12 : 13 : $result = mysql_query($sql, $connect); 14 : } 15 : ?>
32
【예제 7-15】student_list.php
02 17 : <h2>성적처리 프로그램 예제</h2> 18 : 학생 성적 입력하기 20 : <!-- 성적 입력/성적순 정렬/성적역순 정렬 --> 21 : <table width=800 border=0 cellspaceing=1 cellpadding=5 bgcolor=#cccccc> 22 : <tr> 23 : <form action=<? echo $PHP_SELF ?> method='post'> 24 : <td bgcolor=white> 25 : 이름 : <input type=text size=8 name=name> 26 : 국어 : <input type=text size=5 name=kor> 27 : 영어 : <input type=text size=5 name=eng> 28 : 수학 : <input type=text size=5 name=math> 29 : <input type=submit value="입력"> 30 : <input type=hidden name=mode value='insert'> 31 : </td> 32 : </form>
33
【예제 7-15】student_list.php
02 34 : <form action=<? echo $PHP_SELF ?> method='post'> 35 : <td bgcolor=white> 36 : <input type=submit value="성적순 정렬"> 37 : <input type=hidden name=mode value='big_first'> 38 : </td> 39 : </form> 40 : 41 : <form action=<? echo $PHP_SELF ?> method='post'> 42 : <td bgcolor=white> 43 : <input type=submit value="성적역순 정렬"> 44 : <input type=hidden name=mode value='small_first'> 45 : </td> 46 : </form> 47 : </tr> 48 : </table> 50 : <br>
34
【예제 7-15】student_list.php
02 52 : <table width= 800 border=0 cellpadding=5 bgcolor=#cccccc > 53 : <tr> <td bgcolor=#eeeeee align=center>번호</td> 55 : <td bgcolor=#eeeeee align=center>이름</td> 56 : <td bgcolor=#eeeeee align=center>국어</td> 57 : <td bgcolor=#eeeeee align=center>영어</td> 58 : <td bgcolor=#eeeeee align=center>수학</td> 59 : <td bgcolor=#eeeeee align=center>합계</td> 60 : <td bgcolor=#eeeeee align=center>평균</td> 61 : <td bgcolor=#eeeeee align=center></td> </tr> 65 : <? 67 : if ($mode == "big_first") // 성적순 정렬(내림차순) 68 : $sql = "select * from student order by sum desc"; 69 : else if ($mode == "small_first") // 성적순 정렬(오름차순) 70 : $sql = "select * from student order by sum"; 71 : else 72 : $sql = "select * from student";
35
【예제 7-15】student_list.php
02 74 : $result = mysql_query($sql); 76 : $count = 1; // 화면 출력 시 일렬번호 79 : while ($row = mysql_fetch_array($result)) 80 : { $avg = round($row[avg], 1); 84 : echo("<td bgcolor=white align=center> $count </td>"); 85 : echo("<td bgcolor=white align=center> $row[name] </td>"); 86 : echo("<td bgcolor=white align=center> $row[kor] </td>"); 87 : echo("<td bgcolor=white align=center> $row[eng] </td>"); 88 : echo("<td bgcolor=white align=center> $row[math] </td>"); 89 : echo("<td bgcolor=white align=center> $row[sum] </td>"); 90 : echo("<td bgcolor=white align=center> $avg </td>"); 91 : echo("<td bgcolor=white align=center> 92 : <a href=student_delete.php?num=" . $row[num] . ">" . 93 : "삭제</a></td>"); 96 : $count++; 97 : } 100 : mysql_close(); ?> </table>
36
【예제 7-16】student_delete.php
02 레코드 삭제 1 : <? 2 : $connect = mysql_connect("localhost","php5","1234"); 3 : mysql_select_db("php5_db", $connect); 4 : 5 : // DB 테이블에서 num 필드의 값으로 $num 의 값을 가지는 6 : // 레코드 삭제 7 : $sql = "delete from student where num = $num"; 8 : mysql_query($sql, $connect); 9 : 10 : mysql_close($connect); 11 : 12 : // 레코드를 삭제하고 다시 student_list.php 로 돌아감 13 : Header("Location:student_list.php"); 14 : ?> 15 :
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.