ü M ysql 관련 PHP API 함수이해 ü PHP API 함수의활용 ü <form> 태그활용법 ü 변수전달방식의이해 ü API 함수를이용한데이터베이스관리

Similar documents
PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint Template

PowerPoint 프레젠테이션

Microsoft PowerPoint - 10Àå.ppt

歯PLSQL10.PDF

강의 개요

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

설계란 무엇인가?

문서 템플릿

WEB Hacking 한국디지털미디어고등학교, T eampur e, JT JSOFT 장태 진

13 2 ( 25 ) Korean J Med Hist Dec 2004 ISSN X * ( ) ( ) ( ). 1) ( ) ( ) ( ) ( ) ( ) 2) ( ) 3) 1990 ( ) 4) * 1) ( ) C

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

금오공대 컴퓨터공학전공 강의자료

MySQL-.. 1

쉽게 풀어쓴 C 프로그래밊

Microsoft PowerPoint 세션.ppt

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

Microsoft PowerPoint - ch07 - 포인터 pm0415

MySQL-Ch05

Microsoft PowerPoint MySQL 연동.ppt

본 발명은 중공코어 프리캐스트 슬래브 및 그 시공방법에 관한 것으로, 자세하게는 중공코어로 형성된 프리캐스트 슬래브 에 온돌을 일체로 구성한 슬래브 구조 및 그 시공방법에 관한 것이다. 이를 위한 온돌 일체형 중공코어 프리캐스트 슬래브는, 공장에서 제작되는 중공코어 프

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

Discrete Mathematics

PowerPoint 프레젠테이션

Microsoft Word - src.doc

빅데이터분산컴퓨팅-5-수정

PHP & ASP

Javascript

초보자를 위한 C# 21일 완성

PowerPoint Presentation

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

성공적인 웹 프로그래밍 - PHP와 MySQL.PDF

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft Word - php14.doc

adfasdfasfdasfasfadf

5장 SQL 언어 Part II

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

API 매뉴얼

Visual Basic 반복문

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

초보자를 위한 ASP.NET 2.0

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

KNK_C_05_Pointers_Arrays_structures_summary_v02

PowerPoint 프레젠테이션

11장 포인터

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

MySQL-Ch10

많이 이용하는 라면,햄버그,과자,탄산음료등은 무서운 병을 유발하고 비만의 원인 식품 이다. 8,등겨에 흘려 보낸 영양을 되 찾을 수 있다. 도정과정에서 등겨에 흘려 보낸 영양 많은 쌀눈과 쌀껍질의 영양을 등겨를 물에 우러나게하여 장시간 물에 담가 두어 영양을 되 찾는다

Observational Determinism for Concurrent Program Security

초보자를 위한 ASP.NET 21일 완성

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Microsoft PowerPoint - C++ 5 .pptx

Windows 8에서 BioStar 1 설치하기

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

C 프로그램의 기본

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

Microsoft PowerPoint - chap03-변수와데이터형.pptx

초보자를 위한 C++

슬라이드 1

PowerPoint 프레젠테이션

컴파일러

OCaml

윈도우시스템프로그래밍

PHP & ASP

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

특허청구의 범위 청구항 1 앵커(20)를 이용한 옹벽 시공에 사용되는 옹벽패널에 있어서, 단위패널형태의 판 형태로 구성되며, 내부 중앙부가 후방 하부를 향해 기울어지도록 돌출 형성되어, 전면이 오 목하게 들어가고 후면이 돌출된 결속부(11)를 형성하되, 이 결속부(11

Microsoft PowerPoint - Java7.pptx

윈도우즈프로그래밍(1)

PowerPoint Presentation

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft Word - FunctionCall

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

System Recovery 사용자 매뉴얼

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint Python-WebDB

(72) 발명자 서진교 경기 용인시 수지구 풍덕천2동 1167 진산마을 삼성5차아파트526동 1004호 조필제 경기 용인시 풍덕천동 유스빌 401호 - 2 -

10.ppt

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

百 눼신 시 " 가.인도의 대표적 섬유,패션 제품 l) 카펫 면과 비단으로 만든 카펫은 수세기 동안 인기있는 수출 품옥이었다.무굴시대의 디 자인 감각으로 완성된 플러시 비단카펫은 오늘날까지 관광객에게 많은 사랑을 받는 제품이다.인도산 수직 매듭 양탄자 두리(Dur ie

13주-14주proc.PDF

Microsoft PowerPoint - chap06-1Array.ppt

Windows 시스템 프로그래밍 제3판

쉽게 풀어쓴 C 프로그래밍

歯320.PDF

PowerPoint Template

고객 카드

chap 5: Trees

untitled

하둡을이용한파일분산시스템 보안관리체제구현

Spring Boot/JDBC JdbcTemplate/CRUD 예제

03_queue

105È£4fš

PowerPoint Template

3장

PowerPoint Presentation

Transcription:

07 장 PHP 와 M ysql 의연동

ü M ysql 관련 PHP API 함수이해 ü PHP API 함수의활용 ü <form> 태그활용법 ü 변수전달방식의이해 ü API 함수를이용한데이터베이스관리

1. M ysql을지원하는 PHP API 함수 2. <form> 과변수값전달 3. DB 테이블생성과데이터읽기 4. 성적관리프로그램제작

1.2 DB 테이블생성과레코드삽입 데이터베이스테이블구조설계 [ 표 7-1] 명함관리데이터베이스테이블 ( 테이블명 : biz_card) 필드명 타입 추가사항 설명 num int primary key 일련번호 name char(10) 이름 company char(30) 회사 tel char(20) 전화번호 hp char(20) 휴대폰번호 address char(100) 주소

1.2 DB 테이블생성과레코드삽입 명령프롬프트에서데이터베이스테이블생성 biz_card 데이터베이스테이블생성 cr eat e t abl e bi z_car d ( num i nt, name char (10), company char ( 30), t el char (20), hp char (20), addr ess char (100), pr i mar y key(num) ); biz_card.sql

1.2 DB 테이블생성과레코드삽입 biz_card.sql 에담긴 SQL 명령일괄실행 1. C: >cd \APM_Set up\ht docs 2. C: APM_Set up\ht docs> mysql -ukdhong -p1234 -> kdhong_db < bi z_car d. sql 생성된데이터베이스테이블존재확인및구조보기 1. C: APM_Set up\ht docs> mysql -ukdhong -p1234 -> kdhong_db 2. mysql > show t abl es; 3. mysql > desc bi z_car d;

예제 7-1 API 함수를이용한레코드삽입 insert.php 01 <met a ht t p-equi v=" Cont ent -Type cont ent =" t ext /ht ml ; char set =euc-kr " /> 02 <? 03 $connect = mysql _connect ( "l ocal host ", "kdhong", "1234" ); 04 mysql _sel ect _db( "kdhong_db", $connect ); 05 06 $sql = "i nser t i nt o bi z_car d (num, name, company, t el, hp, addr ess) "; 07 $sql. = " val ues (1, ' 원선우 ', ' 미래전자 ', ' 031-276-1829', "; 08 $sql. = " ' 010-8723-2837', ' 경기도용인시신갈동 388-23 번지 ' )"; 09 10 $r esul t = mysql _quer y( $sql ) ; 11 12 i f ($r esul t ) 13 echo " 레코드삽입완료! "; 14 el se 15 echo " 레코드삽입실패! 에러확인요망! "; 16 17 mysql _cl ose( $connect ) ; 18?>

mysql_connect() 함수 형식 r esour ce mysql _connect (st r i ng host name [: por t ], st r i ng user name, st r i ng passwor d) - 첫번째인자 : 서버의호스트명 - 두번째인자 : 사용자계정 - 세번째인자 : 사용자계정의비밀번호 기능 PHP 와 MySQL 을연결한다. C: \>mysql -ukdhong -p1234 와같은기능이다. 반환값 - 성공 : 식별자번호 (r esour ce) - 실패 : FALSE 설명 MySQL 에성공적으로연결하면 r esour ce 라는시스템내부의식별자번호를반환한다. 식별자번호는시스템내부에서사용되므로우리가직접사용할일은별로없으며, 연결에성공하면 FALSE 가아닌값이설정된다고이해하면된다.

mysql_select_db() 함수 형식 bool mysql _sel ect _db( st r i ng dat abase_name, r esour ce l i nk_i dent i f i er ) - 첫번째인자 : 사용할데이터베이스명 - 두번째인자 : 식별자번호 ( mysql _connect ( ) 함수의반환값 ) 기능사용할데이터베이스를선택 mysql >use kdhong_db; 와같은명령이다. 반환값 - 성공 : TRUE - 실패 : FALSE 설명 mysql _connect () 함수를통해 MySQL 과연결된후에는 mysql _sel ect _db( ) 함수로사용할데이터베이스를선택한다.

mysql_query() 함수 형식 r esouce mysql _quer y(st r i ng quer y, r esour ce l i nk_i dent i f i er ) - 첫번째인자 : SQL 명령 - 두번째인자 : 식별자번호 ( mysql _connect ( ) 함수의반환값 ) 기능함수의인자에있는 SQL 명령을실행한다. 반환값 - 성공 : TRUE/ SQL 명령실행결과 - 실패 : FALSE 설명함수의두번째인자가생략되면가장최근에연결된데이터베이스에서명령을실행한다. 첫번째인자가 i nser t /del et e/updat e 명령실행에성공하면 TRUE 를반환하고, 실패하면 FALSE 를반환한다. 만약 sel ect 명령실행에성공하면해당레코드의정보를반환하고, 실패하면 FALSE 를반환한다.

mysql_close() 함수 형식 bool mysql _cl ose(r esour ce l i nk_i dent i f i er ) - 첫번째인자 : 식별자번호 기능 MySQL 과연결을종료한다. 반환값 - 성공 : TRUE - 실패 : FALSE 설명 mysql _connect () 함수로데이터베이스에접속한후작업이모두끝나면, 반드시 mysql _cl ose() 함수로 MySQL 연결을종료해야한다. l i nk_i dent i f i er 는 mysql _connect () 함수의반환값인식별자번호를의미한다. 만약함수의인자가생략된다면가장최근에연결된데이터베이스와서버의연결을종료한다.

2.1 회원가입페이지생성 [ 그림 7-6] 회원가입페이지

예제 7-2 회원가입페이지 mem_form.php 01 <ht ml > 02 <head> 03 <met a ht t p-equi v=" Cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 04 </head> 05 <body> 06 <h2> 회원가입 </h2> 07 <f or m name="mem_f or m" met hod=" post " act i on=" mem_pr i nt. php"> 08 <i nput t ype="hi dden" name="t i t l e" val ue=" 회원가입양식 "> 09 <t abl e bor der =" 1" wi dt h="640" cel l spaci ng="1" cel l paddi ng=" 4"> 10 <t r > 11 <t d al i gn="r i ght ">* 아이디 : </t d> 12 <t d><i nput t ype="t ext " si ze="15" maxl engt h="12" name="i d" val ue="guest "></t d> 13 </t r > 14 <t r > 15 <t d al i gn="r i ght " > * 이름 : </t d> 16 <t d><i nput t ype=" t ext " si ze=" 15" maxl engt h=" 12" name=" name" ></t d> 17 </t r >

예제 7-2 회원가입페이지 mem_form.php 18 <t r > 19 <t d al i gn="r i ght "> * 비밀번호 : </t d> 20 <t d><i nput t ype="passwor d" si ze="15" maxl engt h=" 10" name="passwd" val ue="1234"></t d> 21 </t r > 22 <t r > 23 <t d al i gn="r i ght "> * 비밀번호확인 : </t d> 24 <t d><i nput t ype=" passwor d" si ze=" 15" maxl engt h=" 12" name=" passwd_conf i r m" > </t d> 25 </t r > 26 <t r > 27 <t d al i gn="r i ght "> 성별 : </t d> 28 <t d><i nput t ype=" r adi o" name=" gender " val ue=" M" checked> 남 29 <i nput t ype=" r adi o" name=" gender " val ue=" F" > 여 </t d> 30 </t r >

예제 7-2 회원가입페이지 mem_form.php 31 <t r > 32 <t d al i gn="r i ght "> 휴대전화 : </t d> 33 <t d><sel ect name=" phone1" > 34 <opt i on> 선택 </opt i on> 35 <opt i on val ue="010" >010</opt i on> 36 <opt i on val ue="011" >011</opt i on> 37 <opt i on val ue="017" >017</opt i on> 38 </sel ect > - 39 <i nput t ype="t ext " si ze="4" name="phone2" maxl engt h="4" > - 40 <i nput t ype=" t ext " si ze=" 4" name=" phone3" maxl engt h=" 4" ></t d> 41 </t r > 42 <t r > 43 <t d al i gn="r i ght "> 주소 : </t d> 44 <t d><i nput t ype=" t ext " si ze=" 50" name=" addr ess" ></t d> 45 </t r >

예제 7-2 회원가입페이지 mem_form.php 46 <t r > 47 <t d al i gn="r i ght "> 취미 : </t d> 48 <t d> 49 <i nput t ype="checkbox" name="movi e" val ue=" yes" checked> 영화감상 50 <i nput t ype="checkbox" name="book" val ue="yes" > 독서 51 <i nput t ype="checkbox" name="shop" val ue="yes" > 쇼핑 52 <i nput t ype=" checkbox" name=" spor t " val ue=" yes" checked> 운동 53 </t d> 54 </t r > 55 <t r > 56 <t d al i gn="r i ght "> 자기소개 : </t d> 57 <t d><t ext ar ea name="i nt r o" r ows="5" col s="60" ></t ext ar ea></t d> 58 </t r > 59 </t abl e> 60 <br > 61 <t abl e bor der =" 0" wi dt h="640" >

예제 7-2 회원가입페이지 mem_form.php 62 <t r ><t d al i gn=" cent er "> 63 <i nput t ype="submi t " val ue=" 확인 " > 64 <i nput t ype="r eset " val ue=" 다시작성 " ></t d> 65 </t r > 66 </t abl e> 67 </f or m> 68 </body> 69 </ht ml >

예제 7-3 입력된회원정보출력 mem_print.php 01 <met a ht t p-equi v=" Cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 02 <? 03 echo " 아이디 : $i d<br >"; 04 echo " 이름 : $name<br >"; 05 echo " 비밀번호 : $passwd<br >"; 06 echo " 비밀번호확인 : $passwd_conf i r m<br >" ; 07 echo " 성별 : $sex<br >" ; 08 echo " 휴대번호 : $phone1 - $phone2 - $phone3<br >" ; 09 echo " 주소 : $addr ess<br >"; 10 echo " 영화감상 : $movi e<br >" ; 11 echo " 독서 : $book<br >"; 12 echo " 쇼핑 : $shop<br >"; 13 echo " 운동 : $spor t <br >" ; 14 echo " 자기소개 : $i nt r o<br >" ; 15 echo " 제목 (hi dden 타입에서전달 ) : $t i t l e<br >" ; 16?>

2.2 회원정보확인 [ 예제 7-3] 실행결과 [ 그림 7-7] 회원가입페이지에회원정보입력 ( 좌 ) [ 그림 7-8] 예제 7-3 실행결과 ( 우 )

2.2 회원정보확인 변수전달방식 POST 방식 <form> 태그에서사용된컨트롤의선택사항을 action 에명시된 URL 로전달 한컨트롤의 name 속성값을변수명으로, 폼양식에서사용자가입력한내용이나컨트롤의 value 속성값을그변수값으로전달 GET 방식 변수를통하여간단하게원하는값을전달할때사용하며, 이동하려는 URL 뒤에? 를붙이고변수명과값을한쌍으로묶어서정보를전달 전달하려는변수가여러개일경우에는 & 로구분

<input> 태그 : 텍스트입력박스 형식및사용예 <i nput t ype="t ext " si ze="15" maxl engt h=" 12" name="i d" val ue=" guest " > - si ze: 입력박스의가로크기 - maxl engt h: 입력받을수있는최대글자개수 - name: 입력박스의이름 - val ue: 박스안의초깃값 기능텍스트입력박스를만든다. 참고박스안에 guest 가입력된상태로표시된다.

<input> 태그 : 비밀번호입력박스 형식및사용예 <i nput t ype=" passwor d" si ze=" 15" maxl engt h=" 10" name=" passwd" val ue=" 1234" > - si ze : 입력박스의가로크기 - maxl engt h : 입력받을수있는최대글자개수 - name : 입력박스의이름 - val ue : 박스안의초깃값 기능비밀번호입력박스를만든다. 참고박스안에 **** 가입력된상태로표시된다.

<input> 태그 : 라디오버튼 형식및사용예 <i nput t ype= " r adi o" name=" gender " val ue=" M" checked> - name: 라디오버튼의이름 - checked: 초기선택값 ([ 그림 7-6] 의성별항목참고 ) - val ue: 라디오버튼에표시하면설정되는값 기능라디오버튼을만든다. 설명만약 val ue 값이 " M" 이고라디오버튼이체크되어있으면, 라디오버튼의값으로 M 이전달된다.

<select><option> 태그 형식및사용예 <sel ect name= " phone1" > <opt i on val ue="010" >010</opt i on> <opt i on val ue="011" >011</opt i on> </sel ect > - name: 콤보박스의이름 - val ue: 콤보박스에서해당항목이선택되면설정되는값 기능라디오버튼을만든다.

<input> 태그 : 체크박스 형식및사용예 <i nput t ype=" checkbox" name=" movi e" val ue=" yes" checked> - name: 체크박스의이름 - checked: 화면의초기선택값 - val ue: 체크박스가체크되면설정되는값 기능체크박스를만든다. 설명 val ue 값으로 " yes" 가설정되어있으면이체크박스컨트롤의값으로 " yes" 가전달된다.

<textarea> 태그 형식및사용예 <t ext ar ea name="i nt r o" r ows="5" col s="60"> </t ext ar ea> - name: 여러행텍스트입력상의이름 - r ows: 상자에입력할수있는행의개수, 상자의세로크기 - col s: 한행에입력할수있는글자의개수, 상자의가로크기 기능여러행텍스트입력박스를만든다. <input> 태그 : 이미지버튼 형식및사용예 <i nput t ype=" i mage" sr c=" 이미지파일명 " > 기능이미지버튼을만든다. 설명 [ 예제 7-2] 63 행의확인버튼 ( <i nput t ype= submi t val ue=" 확인 " >) 대신에특정이미지를버튼으로사용하고싶으면 sr c 옵션을사용한다.

2.2 회원정보확인 <input> 태그사용 <input type= submit > <form> 문의 action 에설정된파일로이동 각컨트롤의속성인 name의값이변수값으로전달 Hidden 타입 : <input type="hidden">

3.1 DB 테이블생성과레코드삽입 [ 그림 7-10] membership.sql 파일내용 membership.sql 파일을 [htdocs] 폴더에복사

3.1 DB 테이블생성과레코드삽입 membership.sql 을일괄실행 1. C: \>cd \APM_Set up\ht docs 2. C: \APM_Set up\ht docs> mysql ukdhong p1234 -> kdhong_db < member shi p. sql 생성된테이블과레코드확인 1. C: \APM_Set up\ht docs> mysql ukdhong p1234 -> kdhong_db 2. mysql > show t abl es; 3. mysql > sel ect * f r om member shi p;

예제 7-4 mysql_fetch_array() 함수를이용한데이터읽기 mysql_fetch_array.php 01 <met a ht t p-equi v=" Cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 02 <? 03 $connect = mysql _connect ( "l ocal host ", "kdhong", "1234" ); 04 $db_con = mysql _sel ect _db("kdhong_db", $connect ) ; 05 06 $sql = "sel ect * f r om member shi p; " ; 07 $r esul t = mysql _quer y( $sql, $connect ) ; 08 09 $number = 1; 10?> 11 <h2> mysql _f et ch_ar r ay() 를이용한데이터읽기 </h2> 12 <t abl e wi dt h= "800" bor der ="1" cel l paddi ng=" 10" > 13 <t r al i gn="cent er " > 14 <t d bgcol or =" #cccccc" > 일련번호 </t d> 15 <t d bgcol or =" #cccccc" > 아이디 </t d> 16 <t d bgcol or =" #cccccc" > 이름 </t d> 17 <t d bgcol or =" #cccccc" > 우편번호 </t d> 18 <t d bgcol or =" #cccccc" > 주소 </t d> 19 <t d bgcol or =" #cccccc" > 전화번호 </t d> 20 <t d bgcol or =" #cccccc" > 나이 </t d> 21 </t r >

예제 7-4 mysql_fetch_array() 함수를이용한데이터읽기 mysql_fetch_array.php 22 <? 23 whi l e ( $r ow = mysql _f et ch_ar r ay( $r esul t )) 24 { 25 echo " 26 <t r > 27 <t d> $number </t d> 28 <t d> $r ow[i d] </t d> 29 <t d> $r ow[name] </t d> 30 <t d> $r ow[post _num] </t d> 31 <t d> $r ow[addr ess] </t d> 32 <t d> $r ow[t el ] </t d> 33 <t d> $r ow[age] </t d> 34 </t r > 35 "); 36 $number ++; 37 } 38 39 mysql _cl ose( ) ; 40?> 41 </t abl e>

mysql_fetch_array() 함수 형식 ar r ay mysql _f et ch_ar r ay( r esour ce r esul t ) - 인자 : 식별자번호 (mysql _quer y() 의반환값 ) 기능데이터베이스에서레코드의데이터를배열형태로가져온다. 반환값 - 성공 / 실패 : 배열형태의레코드데이터 /FALSE 설명가져온데이터는 $r ow[num], $r ow[i d] 와같이레코드의필드명을배열인덱스에직접입력한형태로사용한다.

예제 7-5 mysql_fetch_row() 함수를이용한데이터읽기 mysql_fetch_row.php 01 <met a ht t p-equi v=" Cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 02 <? 03 $connect = mysql _connect ( "l ocal host ", "kdhong", "1234" ); 04 $db_con = mysql _sel ect _db("kdhong_db", $connect ) ; 05 06 $sql = "sel ect * f r om member shi p wher e addr ess l i ke ' % 서울 %' or der by age; "; 07 $r esul t = mysql _quer y( $sql, $connect ) ; 08 09 $f i el ds=mysql _num_f i el ds( $r esul t ) ; 10 11 $number = 1; 12?>

예제 7-5 mysql_fetch_row() 함수를이용한데이터읽기 mysql_fetch_row.php 13 <h2> mysql _f et ch_r ow( ) 를이용한데이터읽기 </h2> 14 <t abl e wi dt h= "800" bor der ="1" cel l spaci ng=" 0" cel l paddi ng=" 5" > 15 <t r al i gn="cent er " > 16 <t d bgcol or =" #cccccc" > 일련번호 </t d> 17 <t d bgcol or =" #cccccc" > 아이디 </t d> 18 <t d bgcol or =" #cccccc" > 이름 </t d> 19 <t d bgcol or =" #cccccc" > 우편번호 </t d> 20 <t d bgcol or =" #cccccc" > 주소 </t d> 21 <t d bgcol or =" #cccccc" > 전화번호 </t d> 22 <t d bgcol or =" #cccccc" > 나이 </t d> 23 </t r >

예제 7-5 mysql_fetch_row() 함수를이용한데이터읽기 mysql_fetch_row.php 24 <? 25 whi l e ( $r ow = mysql _f et ch_r ow( $r esul t ) ) 26 { 27 echo "<t r >"; 28 echo "<t d> $number </t d>"; 29 30 f or ( $i =0; $i < $f i el ds; $i ++) 31 { 32 echo "<t d> $r ow[$i ] </t d>"; 33 } 34 35 echo "</t r >"; 36 37 $number ++; 38 } 39 40 mysql _cl ose( ) ; 41?> 42 </t abl e>

mysql_fetch_row() 함수 형식 ar r ay mysql _f et ch_r ow( r esour ce r esul t ) - 인자 : 식별자번호 (mysql _quer y() 의반환값 ) 기능데이터베이스에서레코드의데이터를배열형태로가져온다. 반환값 - 성공 / 실패 : 배열형태의레코드데이터 /FALSE 설명 ar r ay mysql _f et ch_ar r ay( ) 함수와동일한기능을수행하지만, 가져온데이터는레코드의필드번호를배열인덱스에입력한 $r ow[1], $r ow[$i ] 와같은형태로사용하는점이다르다. 배열인덱스와필드대응관계예는 [ 표 7-2] 를참고한다.

예제 7-6 mysql_result() 함수를사용한데이터읽기 mysql_result.php 01 <met a ht t p-equi v=" Cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 02 <? 03 $connect = mysql _connect ( "l ocal host ", "kdhong", "1234" ); 04 $db_con = mysql _sel ect _db("kdhong_db", $connect ) ; 05 06 $sql = "sel ect * f r om member shi p wher e addr ess l i ke ' % 서울 %' or der by age; "; 07 $r esul t = mysql _quer y( $sql, $connect ) ; 08 09 $r ecor ds = mysql _num_r ows($r esul t ) ; 10 11 $f i el ds=mysql _num_f i el ds( $r esul t ) ; 12 13 $number = 1; 14?>

예제 7-6 mysql_result() 함수를사용한데이터읽기 mysql_result.php 15 <h2> mysql _r esul t ( ) 를이용한데이터읽기 </h2> 16 <t abl e wi dt h= "800" bor der ="1" cel l spaci ng=" 0" cel l paddi ng=" 5" > 17 <t r al i gn="cent er " > 18 <t d bgcol or =" #cccccc" > 일련번호 </t d> 19 <t d bgcol or =" #cccccc" > 아이디 </t d> 20 <t d bgcol or =" #cccccc" > 이름 </t d> 21 <t d bgcol or =" #cccccc" > 우편번호 </t d> 22 <t d bgcol or =" #cccccc" > 주소 </t d> 23 <t d bgcol or =" #cccccc" > 전화번호 </t d> 24 <t d bgcol or =" #cccccc" > 나이 </t d> 25 </t r >

예제 7-6 mysql_result() 함수를사용한데이터읽기 mysql_result.php 26 <? 27 f or ($i = 0; $i < $r ecor ds; $i ++) 28 { 29 echo "<t r >"; 30 echo "<t d> $number </t d>"; 31 32 f or ($j = 0; $j < $f i el ds; $j ++) 33 { 34 $dat a = mysql _r esul t ( $r esul t, $i, $j ); 35 echo "<t d> $dat a </t d>"; 36 } 37 echo "</t r >"; 38 $number ++; 39 } 40 mysql _cl ose( ); 41?> 42 </t abl e>

mysql_result() 함수 형식 mi xed mysql _r esul t ( r esour ce r esul t, i nt r ow, mi xed f i el d) - 첫번째인자 : 식별자번호 ( mysql _quer y( ) 의반환값 ) - 두번째인자 : 레코드의행위치 - 세번째인자 : 레코드의열위치 기능레코드의특정위치에저장된값을가져온다. 반환값 - 성공 / 실패 : 해당위치에있는값 /FALSE 설명 mysql _f et ch_r ow( ) 와 mysql _f et ch_ar r ay() 함수가하나의레코드정보를가져오는반면, mysql _r esul t ( ) 함수는특정위치에해당하는값을가져온다. 세번째인자에는필드의일련번호 ( 0 부터시작 ) 와필드명을모두사용할수있고, 반환값의형태에따라반환값의타입이달라진다.

mysql_num_fields() 함수 형식 i nt mysql _num_f i el ds( r esour ce r esul t ) - 인자 : 식별자번호 (mysql _quer y() 의반환값 ) 기능인자의필드개수를알려준다. 반환값 - 성공 / 실패 : 필드의개수 /FALSE 설명검색결과가저장된첫번째인자 r esul t 의필드개수를알려준다.

mysql_num_rows() 함수 형식 i nt mysql _num_r ows( r esour ce r esul t ) - 인자 : mysql _quer y() 의반환값 기능데이터베이스에있는레코드의개수를알려준다. 반환값 - 성공 / 실패 : 레코드의개수 /FALSE 설명 sel ect 문의실행결과인함수의인자가가지고있는레코드의개수를알고싶을때사용한다.

4. 성적관리프로그램제작 1. 데이터베이스테이블설계 2. 데이터베이스테이블생성 3. 성적관리프로그램작성 4. 레코드삭제프로그램작성 [ 그림 7-19] 예제 7-8 에서성적입력

4. 성적관리프로그램제작 1. 데이터베이스테이블설계 [ 표 7-3] 성적관리프로그램데이터베이스테이블 ( 테이블명 : stud_score) 필드명타입추가사항설명 num int not null, auto_increment, primary key 일련번호 name varchar(12) 학생의이름 sub1 int 과목 1 의점수 sub2 int 과목 2 의점수 sub3 int 과목 3 의점수 sub4 int 과목 4 의점수 sub5 int 과목 5 의점수 sum int 합계 avg float 평균

4. 성적관리프로그램제작 2. 데이터베이스테이블생성 stud_score 데이터베이스테이블생성 cr eat e t abl e st ud_scor e ( num i nt not nul l aut o_i ncr ement, name var char (12), sub1 i nt, sub2 i nt, sub3 i nt, sub4 i nt, sub5 i nt, sum i nt, avg f l oat, pr i mar y key(num) ); stud_score.sql

예제 7-7 stud_score 데이터베이스테이블생성 stud_score.php 01 <met a ht t p-equi v=" Cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 02 <? 03 $connect = mysql _connect ( "l ocal host ", "kdhong", "1234" ); 04 $dbconn = mysql _sel ect _db("kdhong_db", $connect ) ; 06 $sql = "cr eat e t abl e st ud_scor e ( "; 07 $sql. = "num i nt not nul l aut o_i ncr ement, "; 08 $sql. = "name var char ( 12), "; 09 $sql. = "sub1 i nt, "; 10 $sql. = "sub2 i nt, "; 11 $sql. = "sub3 i nt, "; 12 $sql. = "sub4 i nt, "; 13 $sql. = "sub5 i nt, "; 14 $sql. = "sum i nt, "; 15 $sql. = "avg f l oat, "; 16 $sql. = "pr i mar y key(num) )"; 17 18 $r esul t = mysql _quer y( $sql, $connect ) ; 19

예제 7-7 stud_score 데이터베이스테이블생성 stud_score.php 20 i f ($r esul t ) 21 echo " 데이터베이스테이블 ' st ud_scor e' 가생성되었습니다! " ; 22 el se 23 echo " 데이터베이스테이블생성에러!!! " ; 24 25 mysql _cl ose( ); 26?>

4. 성적관리프로그램제작 3. 성적관리프로그램작성 예제 7-8 성적관리프로그램 score_list.php 001 <? 002 // 데이터베이스연결 003 $connect = mysql _connect ("l ocal host ", " kdhong", " 1234"); 004 005 // 데이터베이스선택 006 mysql _sel ect _db("kdhong_db", $connect ) ; 007 008 i f ($mode == "i nser t " ) // 데이터입력모드 009 { 010 $sum = $sub1 + $sub2 + $sub3 + $sub4 + $sub5; // 합계계산 011 $avg = $sum/5; // 평균계산 012 013 $sql = " i nser t i nt o st ud_scor e ( name, sub1, sub2, sub3, sub4, sub5, sum, avg) val ues"; 014 $sql. = "(' $name', $sub1, $sub2, $sub3, $sub4, $sub4, $sum, $avg)"; 015 016 $r esul t = mysql _quer y( $sql, $connect ) ; 017 } 018?>

예제 7-8 성적관리프로그램 score_list.php 019 020 <met a ht t p-equi v="cont ent -Type" cont ent =" t ext /ht ml ; char set =euc-kr " /> 021 <h3>1) 성적입력하기 </h3> 022 023 <f or m act i on=" scor e_l i st. php?mode=i nser t " met hod=' post ' > 024 <t abl e wi dt h=" 720" bor der ="1" cel l paddi ng=" 5"> 025 <t r ><t d> 이름 : <i nput t ype="t ext " si ze="6" name="name" > 026 과목1 : <i nput t ype=" t ext " si ze=" 3" name=" sub1" > 027 과목2 : <i nput t ype=" t ext " si ze=" 3" name=" sub2" > 028 과목3 : <i nput t ype=" t ext " si ze=" 3" name=" sub3" > 029 과목4 : <i nput t ype=" t ext " si ze=" 3" name=" sub4" > 030 과목5 : <i nput t ype=" t ext " si ze=" 3" name=" sub5" > 031 </t d> 032 <t d al i gn="cent er " > 033 <i nput t ype="submi t " val ue=" 입력하기 "> 034 </t d> 035 </t r > 036 </t abl e> 037 </f or m>

예제 7-8 성적관리프로그램 score_list.php 038 039 <p> 040 <h3>2) 성적출력하기 </h3> 041 <p><a hr ef ="scor e_l i st. php?mode=bi g_f i r st " >[ 성적순정렬 ]</a> 042 <a hr ef ="scor e_l i st. php?mode=smal l _f i r st ">[ 성적역순정렬 ]</a></p> 043 <p> 044 <! -- 제목표시시작 --> 045 <t abl e wi dt h=" 720" bor der ="1" cel l paddi ng=" 5"> 046 <t r al i gn=" cent er " bgcol or =" #eeeeee"> 047 <t d> 번호 </t d> 048 <t d> 이름 </t d> 049 <t d> 과목1</t d> 050 <t d> 과목2</t d> 051 <t d> 과목3</t d> 052 <t d> 과목4</t d> 053 <t d> 과목5</t d> 054 <t d> 합계 </t d> 055 <t d> 평균 </t d> 056 <t d> </t d> 057 </t r >

예제 7-8 성적관리프로그램 score_list.php 058 <! -- 제목표시끝 --> 059 060 <? 061 // sel ect 명령저장 062 i f ($mode == "bi g_f i r st " ) // 성적순정렬 ( 내림차순 ) 063 $sql = "sel ect * f r om st ud_scor e or der by sum desc"; 064 el se i f ($mode == "smal l _f i r st ") // 성적순정렬 ( 오름차순 ) 065 $sql = "sel ect * f r om st ud_scor e or der by sum"; 066 el se 067 $sql = "sel ect * f r om st ud_scor e" ; 068 069 $r esul t = mysql _quer y($sql ) ; 070 071 $count = 1; // 성적출력하기의번호 072

예제 7-8 성적관리프로그램 score_list.php 073 // 데이터베이스데이터출력시작 074 whi l e ($r ow = mysql _f et ch_ar r ay( $r esul t )) 075 { 076 $avg = r ound($r ow[avg], 1); 077 078 $num = $r ow[num]; 079 080 echo ("<t r al i gn=' cent er ' > 081 <t d> $count </t d> 082 <t d> $r ow[name] </t d> 083 <t d> $r ow[sub1] </t d> 084 <t d> $r ow[sub2] </t d> 085 <t d> $r ow[sub3] </t d> 086 <t d> $r ow[sub4] </t d> 087 <t d> $r ow[sub5] </t d> 088 <t d> $r ow[sum] </t d> 089 <t d> $avg </t d> 090 <t d> <a hr ef =' scor e_del et e. php?num=$num' >[ 삭제 ]</a></t d> 091 </t r > 092 ");

예제 7-8 성적관리프로그램 score_list.php 093 094 $count ++; 095 } 096 // 데이터베이스데이터출력완료 097 098 mysql _cl ose( ); // 데이터베이스와의접속종료 099?> 100 101 </t abl e>

round() 함수 형식 f l oat r ound (f l oat $val, i nt $pr eci si on) - 첫번째인자 : 실수형변수, 상수 - 두번째인자 : 구하는자릿수 기능인자를지정한자릿수까지반올림한다. 반환값 - 성공 / 실패 : 반올림된값 /FALSE 설명예를들어 r ound( 5. 367, 1) 이면, 실수 5. 367 를소수점첫째자리까지반올림한 5. 4 가반환된다. 함수가성공적으로실행되면반올림된값을반환한다.

4. 성적관리프로그램제작 4. 레코드삭제프로그램작성 예제 7-9 레코드삭제 score_delete.php 01 <? 02 $connect = mysql _connect ( "l ocal host ", "kdhong", "1234" ); 03 mysql _sel ect _db( "kdhong_db", $connect ); 04 05 // 필드 num 이 $num 값을가지는레코드삭제 06 $sql = "del et e f r om st ud_scor e wher e num = $num"; 07 mysql _quer y( $sql, $connect ) ; 08 09 mysql _cl ose( $connect ) ; 10 11 // scor e_l i st. php 로돌아감 12 Header ( "Locat i on: scor e_l i st. php"); 13?>