1 / 36

PHP 와 Mysql 연동

7 장. PHP 와 Mysql 연동. 학습 목표. 데이터베이스를 접속 및 종료 함수의 사용법을 익힌다 데이터베이스를 생성 , 삭제 , 선택 함수의 사용법을 익힌다 SQL 명령문을 실행하는 함수의 사용법을 익힌다 . 레코드 수와 필드 수 계산 함수의 사용법을 익힌다 하나의 레코드 값을 읽어오는 함수의 사용법을 익힌다 폼 문 형식과 입력된 내용이 변수 값으로 전달되는 방식을 익힌다 성적 처리 예제를 통하여 Mysql 함수 사용법을 익힌다. 주요 학습 내용.

Télécharger la présentation

PHP 와 Mysql 연동

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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( ) 함수 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( ) 함수 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."email 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', 'khlee@hanmail.net', '여', 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 • mysql_fetch_array( ) 함수 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=radioname=sex value='남성' checked>남 22 : <input type=radioname=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=checkboxname=movie value="yes" checked> 영화감상 &nbsp; 43 : <input type=checkboxname=book value="yes" >독서 &nbsp; 44 : <input type=checkboxname=shop value="yes" >쇼핑 &nbsp; 45 : <input type=checkboxname=sport value="yes" checked>운동 46 : </td></tr> 47 : <tr> 48 : <td align=right>자기소개 :</td> 49 : <td><textareaname=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=hiddenname=title value="회원 가입 양식"> 58 : </form> 59 : </body> 60 : </html>

  26. 【예제 7-13】mem_print.php 02 • 회원가입 양식 입력된 내용 출력 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. 필드 이름 타입 추가 사항 필드 설명 num int not null, auto_increment, primary key 일렬 번호 name varchar(12) 학생 이름 kor int 국어 성적 eng int 영어 성적 math int 수학 성적 sum int 총점 avg float 평균 성적처리 DB 테이블 설계 01 [표 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> &nbsp;&nbsp; 29 : <input type=submit value="입력"> 30 : <input type=hiddenname=modevalue='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=hiddenname=modevalue='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=hiddenname=modevalue='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 :

More Related