406.426 426 Design & Analysis of Database System PHP 2007 Fall 지도교수 : 박종헌교수님 (jonghun@snu.ac.kr) 담당조교 : 정범석 (bumdol03@snu.ac.kr) Digital Interaction Lab. Industrial Engineering Seoul National University
Reference Martial PHP 프로그래밍입문 : 웹사이트제작완벽실습 Hanbit Book 저자 : 황재호 발행일 : 2005 / 12 http://www.hanbitbook.co.kr/look.php?isbn=89-7914-374-5 406.426 Design & Analysis of Database System 2
Table of Contents PHP 개요 PHP 동작원리 윈도우환경에서 Apache 설치 PHP 프로그램설치 Apache와 PHP 환경설정 Mysql 설치 실습환경구축 406.426 Design & Analysis of Database System 3
What is PHP? PHP official web site http://www.php.net PHP is a widely-used generalpurpose scripting language that is especially suited for Web development and can be embedded into HTML. Hypertext Preprocessor 의약어 406.426 Design & Analysis of Database System 4
What is PHP? 특징 Apache, Mysql, PHP 가패키지형태로사용 저비용으로고기능웹사이트구축 C 언어와 90% 이상유사 Oracle, PostgreSQL, Sybase 등다양한데이터베이스를지원 PHP 는설치가간단하고배우기쉬움 익히기쉽기때문에 JSP 에비해개발기간도적게걸림 구축된웹사이트동작속도가빠름 간략한역사 1994 년라스머스레돌프가 PHP 개발 PHP/FI2, PHP 3, PHP 4 로발전 현재 PHP 5 출시 Zend 2 엔진채용 다양한객체지향기능추가 406.426 Design & Analysis of Database System 5
PHP vs. ASP/JSP ASP MS 사에서제공하는윈도우서버환경 (IIS) 필요 MS 사의 MSSQL 데이터베이스만을사용 JSP SUN사의 JAVA를기반으로웹환경에맞게개발 JSP 언어는보안성이우수하고많은우수한기능들이포함 객체지향언어이기때문에초보자에게어려움 406.426 Design & Analysis of Database System 6
PHP 기반의운영환경 클라이언트 ( 서비스요청 ) 컴퓨터 웹브라우저 ( 인터넷익스플로러 ) 1 웹페이지요청 2 PHP 부분처리요청 3 데이터베이스로부터가져옴 1 5 4 가져온데이터아파치에전달 5 웹페이지를클라이언트에제공 서버 ( 서비스제공 ) 컴퓨터 웹서버프로그램 ( 아파치 ) 2 4 3 PHP 데이터베이스 (MYSQL) 406.426 Design & Analysis of Database System 7
PHP 사용예 <html> <body> <? $kor=80; $eng=70; $math= 90; $sum= $kor + $eng + $math; $avg= $sum/3;?> <table border=1> <tr><td> 국어 : <? echo $kor;?> </td></tr> <tr><td> 영어 : <? echo $eng;?> </td></tr> <tr><td> 수학 : <? echo $math;?> </td></tr> <tr><td> 합계 : <? echo $sum;?> </td></tr> <tr><td> 평균 : <? echo $avg;?> </td></tr> > </table> </body> </html> 프로그램실행결과 406.426 Design & Analysis of Database System 8
Install Apache Web Server Apache Web Server official web site http://httpd.apache.org Download Apache HTTP Server223 2.2.3 the best available version Win32 Binary file (apache_2.2.3-win32-x86- no_ssl.msi) 406.426 Design & Analysis of Database System 9
Install PHP Download PHP 5.1.6 zip ppackage [9,285Kb] - 24 Aug 2006 at http://www.php.net/downloads.php 406.426 Design & Analysis of Database System 10
Install All in One Apache + PHP + MySql + 관리도구 http://www.autoset.org/ Download latest version of 올가 Install Reboot. Web home directory C:\autoset\public_html http://localhost 406.426 Design & Analysis of Database System 11
Table of Contents 1. PHP 의시작과끝 2. 주석문 3. echo 문 4. 상수와변수 5. 연산자 406.426 Design & Analysis of Database System 12
PHP 의시작과끝 안녕하세요 ~~, 저는홍길동입니다. 출력 (hello.php) h PHP 시작 줄바꿈 1:<? 2 : echo " 안녕하세요 ~~<br>"; 3 : echo " 저는홍길동입니다.<br>"; 4 :?> PHP 끝 Web Home Directory 밑에실습폴더명 익스플로러주소창 : 익스플로러주소창 http://localhost/myfolder/hello2.php 406.426 Design & Analysis of Database System 13
주석문 comment.php 한줄주석처리 1:<? 2 : // 이프로그램은주석처리를설명하는프로그램입니다. 3 : /* 주석처리를여러줄 4 : 하고자하는경우는 5 : 이와같이합니다.*/ 6 : echo 이내용은출력됩니다."; 7 :?> 여러줄주석처리 406.426 Design & Analysis of Database System 14
echo 문 echo.php 1:<? 2: echo "---------------------- <br>"; 3 : echo " 거북이 <br>"; 4: echo " 토끼 <br>"; 5: echo "---------------------- <br>"; 6 : ECHO "&^%$&*%&&%*&(*(<br>"; 7: ECHO "---------------------- <br>"; 8: ECHO " 자동차 <br>"; 9: ECHO " 버스 <br>"; 10 : ECHO "---------------------- <br>"; 11 :?> 대소문자구분안함 ( 동일하게동작 ) 406.426 Design & Analysis of Database System 15
상수와변수 var.php 문자열변수 1:<? 2: $aaa =" 사과 "; 3 : echo "<br>"; 문자열상수 4 : echo $aaa; 5: 6: $aaa =" 오렌지 "; 7 : echo "<br>"; 8 : echo $aaa; 정수형변수 9: 10 : $aaa = 100; 11 : echo "<br>"; 12 : echo $aaa; 13 :?> 정수형상수 406.426 Design & Analysis of Database System 16
총점과평균구하기 sum_avg.php 1: <? 2: $kor =80; 3 : $eng =70; 총점구하기 4 : $math = 90; 5 : 6: $sum = $kor + $eng + $math; 7: $avg = $sum/3; 8 : 9 : echo (" 국어 :$kor<br>"); 평균구하기 10 : echo (" 영어 : $eng <br>"); 11 : echo (" 수학 : $math <br>"); 12 : echo (" 합계 :$sum<br>"); 13 : echo (" 평균 : $avg <br>"); 14 :?> 406.426 Design & Analysis of Database System 17
거스름돈계산하기 change.php 1: <? 2 : $money = 3000; // 지불한돈 주석문 3 : $price = 800; // 개당물건가격 4 : $num = 3; // 구매개수 5: 6: $change = $money - $price * $num; // 거스름돈 = 3000-800 * 3 7: 8 : echo (" 물건값 : $price <br>"); 9 : echo (" 구매개수 : $num <br>"); 10 : echo (" 지불액 : $money <br>"); 11 : echo (" 거스름돈은 $change 원입니다.<br>"); 12 :?> 406.426 Design & Analysis of Database System 18
산술연산자 연산자예결과 더하기 (+) 5 + 6 11 빼기 (-) 6-3 3 곱하기 () (*) 2 + 6 * 3 20 나누기 (/) 2-6 / 3 0 나머지 (%) 5 % 2 1 증가 (++) $a++ 현재 $a 값에서 1 증가 감소 (--) $a-- 현재 $a 값에서 1 감소 406.426 Design & Analysis of Database System 19
산술연산자예제 1 : <? 2: $a=3; 3: $b=2; 5 : $c = $a + $b; 7 : $b = $a * $b; 9 : $c = $a + $b * $c; 10 : 11 : echo "$a $b $c<br>"; 13 : $c = $a % $b; 14 : 15 : $b++; 17 : $a--; 18 : 19 : echo "$a $b $c<br>"; 20 :?> 406.426 Design & Analysis of Database System 20
점 (.) 연산자 1 : <? 2: $a=" 토끼 "; 3: $b=" 거북이 "; 4 : 5 : $c = $a.$b; 6: 7 : echo $a."<br>"; " 8 : echo $b."<br>"; 9 : echo $c."<br>"; 10 :?> 두개의문자열연결 406.426 Design & Analysis of Database System 21
대입연산자 연산자예동일한수식설명 = $a = 3 3 을변수 $a 에대입 += $a += 3 $a = $a +3 $a + 3 결과값을 $a 값에대입 -+ $a -= 3 $a = $a - 3 $a - 3 결과값을 $a 값에대입 *= $a *= 3 $a = $a * 3 $a * 3 결과값을 $a 값에대입 /= $a /= 3 $a = $a / 3 $a / 3 결과값을 $a 값에대입 %= $a %= 3 $a = $a % 3 $a % 3 결과값을 $a 값에대입.= $a.= "<br>" $a = $a."<br>" $a. <br>" 결과값을 $a 값에대입 406.426 Design & Analysis of Database System 22
대입연산자예제 1 : <? 2 : $a = 10; 4 : $a += 2; // $a = $a + 2 와동일 6 : $a -= 7; // $a = $a - 7 와동일 8 : $a *= 5; // $a = $a * 5 와동일 10 : $a /= 5; // $a = $a / 5 와동일 12 : $a %= 7; // $a =$a % 7 와동일 14 : 15 : $a = " 미키 "; 16 : $a.= " 마우스 "; // $a = $a. " 마우스 " 와동일 18 :?> 406.426 Design & Analysis of Database System 23
비교연산자 연산자예설명 == $a == $b $a 와 $b 가서로같은값을가지면참!= $a!= $b $a 와 $b 가서로다른값을가지면참 > $a > $b $a 의값이 $b 의값보다크면참 < $a < $b $a 의값이 $b 의값보다작으면참 >= $a >= $b $a 의값이 $b 의값보다크거나같으면참 <= $a <= $b $a 의값이 $b 의값보다작거나같으면참 406.426 Design & Analysis of Database System 24
논리연산자 연산 예 설명 자!!$a $a 가참이면거짓,$ $a 가거짓이면참 && ($a>$b) && ($c>$d) ($a>$b) ($c>$d) ($a>$b) 와 ($c>$d) 가둘다참이어야만참 ($a>$b) 와 ($c>$d) 가둘중하나만참이어도참 406.426 Design & Analysis of Database System 25
If ~ Else 예제 시험점수가 80 점이상이면합격 (pass.php) php) 참이면 5행실행거짓이면 7 행실행 1 : <? 2 : $score = 70; 3: 4 : if ($score >= 80) 5 : echo (" 점수가 {$score} 점이므로합격입니다.<br>"); 6: else 7 : echo (" 점수가 {$score} 점이므로불합격입니다.<br>"); 8:?> 406.426 Design & Analysis of Database System 26
If 조건식에사용되는비교연산자 연산자의미예결과값 == 같다 3 == 2 3 은 2 와같지않으므로거짓!= 같지않다 5!= 7 5 는 7 과같지않으므로참 > 크다 5 > 7 5 는 7 보다크지않으므로거짓 < 작다 8 < 10 8 은 10 보다작으므로참 >= 크거나같다 9 >= 9 크거나같다 에서 같다 조건에해당하여 참 <= 작거나같다 10 <= 7 10 은 7 보다작거나같지않으므로거짓 406.426 Design & Analysis of Database System 27
If 문예제 입장료가기본 10000 원, 7 세미만무료 (free_fee.php) fee 1 : <? 2 : $fee = 10000; 3 : $age = 5; 참인경우에만 7행실행 4 : 5: if ( $age < 7 ) 6: { 7 : $fee = 0; 변수를문자와분리 8: } 9: 10 : echo " 나이가 {$age} 세이므로입장료는 {$fee} 원입니다.<br>"; 11 :?> 406.426 Design & Analysis of Database System 28
홀수 / 짝수판별예제 odd.php 참인경우에는 5 행실행거짓인경우에는 7행실행 1:<? 2: $a=3; 3: 4 : if ($a % 2 == 1) 5 : echo "$a 은 ( 는 ) 홀수입니다.<br>"; 6: else 7 : echo "$a 은 ( 는 ) 짝수입니다.<br> <br>"; 8:?> 406.426 Design & Analysis of Database System 29
어떤수가 100 보다큰지를판별하는예제 comp_100.php php 참인경우에는 5 행실행거짓인경우에는 7 행실행 1:<? 2: $a =10; 3: 4: if ($a > 100) 5 : echo "$a 은 ( 는 ) 100 보다큽니다.<br> <br>"; 6: else 7 : echo "$a 은 ( 는 ) 100 보다크지않습니다.<br>"; 8 :?> 406.426 Design & Analysis of Database System 30
다이어트필요유무판별예제 diat.php 1: <? 5 : $h = 170; 6 : $w = 40; 7: $a = ($h-100)*0.9; 8 : 9 : echo (" 키 :$h<br>"); 10 : echo (" 몸무게 :$w<br>"); 11 : 12 : if ($w>$a) 13 : echo (" 다이어트가필요할지도모르겠군요.<br>"); 14 : else 15 : echo (" 다이어트가필요하지않군요.<br>"); 16 :?> 406.426 Design & Analysis of Database System 31
운전면허 필기 70 점이상, 실기 80 점이상합격 (pass2.php) php) 1: <? 2 : /* 운전면허합격조건은필기 70 점이상, 실기 80 점이상이어야 3: 합니다.*/ 5 : $pilgi = 75; 6 : $silgi = 86; 7: 8 : echo " 필기점수 : $pilgi<br>"; 9 : echo " 실기점수 : $silgi<br>"; 10 : 11 : if ($pilgi >= 70 and $silgi>=80) 12 : echo " 합격입니다 <br>"; 13 : else 14 : echo " 불합격입니다 <br>"; 15 :?> 406.426 Design & Analysis of Database System 32
다중 if-else 문예제 점수에따른등급표시 (grade.php) 1:<? 2 : $s = 80; 3: 4: if ($s>=95 && $s<=100) echo("$s A+ <br>"); 7 : elseif ($s>=90 && $s<=94) echo("$s A <br>"); 10 : elseif ($s>=85 && $s<=89) echo("$s B+ <br>"); 13 : elseif ($s>=80 && $s<=84 ) echo("$s B <br>"); 16 : elseif ($s>=75 && $s<=79 ) echo("$s C+ <br>"); 19 : elseif ($s>=70 && $s<=74 ) echo("$s C <br>"); 22 : elseif ($s>=65 && $s<=69 ) echo("$s D+ <br>"); 25 : elseif ($s>=60 && $s<=64 ) echo("$s D <br>"); 28 : else echo("$s F <br>"); 30 :?> 406.426 Design & Analysis of Database System 33
Switch 문 1 : switch ( 변수 ) 2: { 3: case 값1 : 변수의값이값1 인경우에실행됨 4 : 문장 1; 5: break; 6: case 값2 : 변수의값이값2 인경우에실행됨 7: 문장 2; 8: break; 9: case 값3 : 변수의값이값3 인경우에실행됨 10 : 문장 3; 11 : break; 12 : default : 나머지모든경우에실행됨 13 : 문장 4; 14 : } 406.426 Design & Analysis of Database System 34
Switch 문예제 1 : <? 2: $a=2; 4: switch( $a) 5: { 6 : case 0 : echo " 변수 \$a 가 0 이기때문에이줄이실행되었군요 ~~<br>"; 8: break; 9: case 1 : echo " 변수 \$a가 1이기때문에이줄이실행되었군요 ~~<br>"; 11 : break; 12 : case 2 : echo " 변수 \$a가 2이기때문에이줄이실행되었군요 ~~<br>"; 14 : break; 15 : case 3 : echo " 변수 \$a가 3이기때문에이줄이실행되었군요 ~~<br>"; 17 : break; 18 : default : echo " 변수 \$a가 0, 1, 2, 3에해당되지않는군요 ~~<br>"; 20 : } 21 :?> 406.426 Design & Analysis of Database System 35
While 문 while 문이용 1 에서 10 까지출력 (while_1_10.php) 10 1:<? 2 : $i = 1; // 초기값설정 3: 4: while ($i <= 10) // 조건식이거짓이될때까지 5행 ~8행반복실행 5 : { 6 : echo $i."<br>"; 7: $i++; // $i의값을1증가시킴 8: } 9:?> 406.426 Design & Analysis of Database System 36
While 문예제 while 문 1 ~ 10 까지합구하기 (while_sum_1_10.php) 10 1: <? 2 : $a=1; // 초기화 3: $sum=0; // 누적합초기화 4: 5 : while($a<=10) // $a 가 10 이될때까지 7 행과 8 행반복 6: { 7: $sum=$sum+$a; 8: $a++; // $a 값 1 증가 9: } 10 : 11 : echo("1에서 10까지자연수의합은 $sum 입니다.<br>"); 12 :?> 406.426 Design & Analysis of Database System 37
For 문 for 문을이용하여 1 ~ 10 출력하기 (for_1_10.php) 10 1 2 3 1:<? 2: for ($i=1; $i <= 10; $i++) // $i 가 1 부터 10까지 10번수행 3: { 4 : echo $i."<br>"; 5: } 4 6:?> 406.426 Design & Analysis of Database System 38
For 문을활용한덧셈예제 for 문 1 ~ 10 까지의합계 (for_sum_1_10.php) 10 1: <? 2 : 3 : $sum=0; 4: 5: for($a=1; $a<=10; $a++) // $a가 1에서 10까지 7행이 10번반복 6: { 7 : $sum=$sum+$a; 8: } 9: 10 : echo("1 에서 10 까지자연수의합은 $sum 입니다.<br> <br>"); 11 :?> 406.426 Design & Analysis of Database System 39
For 문을활용한구구단예제 구구단표만들기 (gugudan.php) 1: <? 2 : echo("--------------------- <br>"); 3: 4: for($a=2; $a<=9; $a++) 5 : { 6: for($b=1; $b<=9; $b++) 7: { 8 : $c = $a * $b; 9 : echo(" $a x $b = $c <br>"); 10 : } 11 : 12 : echo("--------------------- <br>"); 13 : } 14 :?> 406.426 Design & Analysis of Database System 40
While 문과 Do-While 문 while 문예제 조건식이앞에존재 1:<? 2 : $i = 100; 3: 4: while ($i <= 10) 5: { 6: echo $i."<br>"; 7: } 8:?> do ~ while 문예제 조건식이뒤에존재 1:<? 2 : $i = 100; 3: 4: do 5: { 6: echo $i."<br>"; 7: } while ($i <=10) ) 8:?> 406.426 Design & Analysis of Database System 41
배열이용합계와평균구하기 배열이용 5 과목의합계 / 평균 (array_avg.php) avg 1:<? 2 : // 배열이용합계, 평균구하기, 배열의원소는 0 부터시작 4: $score[0]=80; $score[1]=90; $score[2]=90; 7: $score[3]=99; $score[4]=78; 9 : 10 : $sum=0; 11 : for($a=0; $a<=4; $a++) 13 : $sum=$sum+$score[$a]; $sum+$score[$a]; 15 : 16 : $avg=$sum/5; 18 : echo(" 과목점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>"); 19 : echo(" 합계 :$sum, 평균 : $avg <br>"); 20 :?> 406.426 Design & Analysis of Database System 42
array( ) 함수이용한 1 차원배열 array( ) 함수를이용 (array_func_avg.php) avg 1:<? 2 : // array() 함수를이용한배열이용합계, 평균구하기 4: $score = array(80, 90, 90, 99, 78); 5: 6 : $sum=0; 7: for($a=0; $a<=4; $a++) 9 : $sum=$sum+$score[$a]; 10 : 12 : $avg=$sum/5; 13 : 14 : echo(" 과목점수 : $score[0], $score[1], $score[2], $score[3], $score[4]<br>"); 15 : echo(" 합계 :$sum, 평균 : $avg <br>"); 16 :?> 406.426 Design & Analysis of Database System 43
배열과 for 문이용예제 1 차원배열예제 (array_a_b_c.php) a 1:<? 2 : for($i=0; $i<10; $i++) // $a 에 1 ~ 10 입력 3: $a[$i] = $i+1; 4: 5 : for($i=0; $i<10; $i++) // $b 에 101 ~ 110 입력 6: $b[$i] = $i+101; 7: 8 : for($i=0; $i<10; $i++) // $c 에 $a 와 $b 의합입력 9: $c[$i] = $a[$i] + $b[$i]; 10 : 11 : for($i=0; $i<10; $i++) // 화면에출력 12 : echo "$a[$i] + $b[$i] = $c[$i]<br>"; 13 :?> 406.426 Design & Analysis of Database System 44
2 차원배열예제 3 명학생 5 과목합계 / 평균 (array_2d_avg.php) avg 1:<? 2: // 2차원배열을이용한 3명의학생에대한 5과목합계와평균 4: $s[0][0]=79; $s[0][1]=90; $s[0][2]=60; $s[0][3]=45; $s[0][4]=80; 10: $s[1][0]=80; $s[1][1]=90; $s[1][2]=90; $s[1][3]=99; $s[1][4]=89; 16: $s[2][0]=45; $s[2][1]=85; $s[2][2]=90; $s[2][3]=99; $s[2][4]=84; 22 : for($a=0; $a<3; $a++) 23 : { $sum=0; 26 : for($b=0; $b<5; $b++) 28 : $sum=$sum+$s[$a][$b]; $ $ $ $ 30 : 31 : $avg=$sum/5; 32 : $student_num t = $a + 1; 33 : echo("$student_num 번째학생의성적 => 합계 :$sum, 평균 : $avg <br>"); } 35 :?> 406.426 Design & Analysis of Database System 45
함수정의및목적 함수정의 : PHP 코드들의집합으로써어떤역할을수행하는개체 함수사용목적 재사용 : 하나의함수를만들어놓으면다음부터그함수를계속해서재사용을할수있다. 예를들어평균을구하는부분을하나의함수로만들어놓으면평균을구하고싶을때마다그함수를사용하면된다. 모듈화 : 전체프로그램의복잡한문제를함수내부의문제로국한시켜프로그램을체계적으로쉽게프로그래밍을해나갈수있게만들어준다. 406.426 Design & Analysis of Database System 46
수학관련함수 함수명 abs( ) cos( ) 역할절대치구하기삼각형의코사인값구하기 date( () 현재날짜구하기 ceil( ) floor( ) round( ) log( ) 올림값구하기내림값구하기반올림값구하기로그값구하기 max( () 최대값구하기 406.426 Design & Analysis of Database System 47
반환 (retuen) 값이없는함수예제 함수를이용한두수의합 (func_plus_2num.php) php) 1:<? 2: function plus($a, $b) 3: { 함수정의 4: $c =$a +$b; 5: echo $c; 6: } 7 : 함수호출 8: plus(10, 20); 9 : echo "<br>"; 10 : plus(1000, 3000); 11 :?> 406.426 Design & Analysis of Database System 48
반환 (return) 값을가지는함수예제 반환값을가지는함수예 (func_plus_2num_ret.php php ) 1:<? 2 : function plus($a, $b) 3: { 4: $c = $a + $b; 6 : return $c; 7: } 8: 9: $result = plus(10, 20); 10 : echo $result."<br>"; 11 : 12 : $result = plus(1000, 3000); 13 : echo $result."<br>"; 14 :?> 함수정의 함수호출 406.426 Design & Analysis of Database System 49
함수이용정수합계 함수를이용하여정수의합계구하기 (func_hap.php) php) 1:<? 2 : // hap($a, $b) 함수는 $a 에서 $b 까지의합을구한다. 3: function hap($a, $b) 4: { 5 : $sum=0; 6: while($a <= $b) 7: { $sum=$sum+$a; 9 : $a++; } 11 : return $sum; 12 : } 14 : $from = 1; 15 : $to = 10; 17 : $total = hap($from, $to); 18 : echo("$from 에서 $to 까지의합은 $total 입니다.<br>"); 19 :?> 406.426 Design & Analysis of Database System 50
Plaza 계정신청 서울대정보화포털 (http://portal.snu.ac.kr) p 계정관리 유료시스템신청및관리에서신청 신청한 ID 와동일한입금명으로계좌입금 사용내역및입금조회확인 * 서울대학교 Plaza 서버이외개인 PC 를포함하여어떠한서버를사용해도무방합니다. 406.426 Design & Analysis of Database System 51
Plaza 시스템접속 http://di.snu.ac.kr/courses/db06/ Link 에서 Zterm.ext 다운로드 ( 이외 SSH Telnet이지원되는 Telnet program 사용해도무방 ) 406.426 Design & Analysis of Database System 52
Index.html 만들기 PLAZA 에접속하면자신의 Home directory 로들어가게되는데, 홈페이지를구성하기위하여가장먼저 public_html 디렉토리를만들고 index.html 을만들어야한다. 방법 ( 또는 PC 에서작성하여 FTP 로업로드 ) $mkdir public_html $cd public_ html vi index.html 다음과같이작성하고저장 <HTML> <BODY> Welcome, My Name is XXX. </BODY> </HTML> 406.426 Design & Analysis of Database System 53
Index.html 만들기 http://plaza.snu.ac.kr/~ p 아이디/index.html 접속 406.426 Design & Analysis of Database System 54
PHP 와 Mysql 연동하기 PHP 1>mysql _ connect() : 연결 2>mysql _ select _ db() : db 선택 3>mysql _ query() : 테이블쿼리 4>mysql _ fetch _array() 쿼리한값을배열에저장 5>echo() : 출력 6>mysql _ close() : 종료 1 6 2 kiny729 table 3 Mysql 5 4 test ccomo content 좋다 1>mysql 서버에연결한다. ;mysql _ connect(); 2>mysql _ select _ db() : mysql 안의 db 를선택 3>mysql 안의 db안의테이블에서쿼리를수행한다. (mysql db의테이블에서데이터를입력 / 삭제하거나쿼리수행 ) : mysql _ query(); 4> 쿼리수행한것을배열에저장해둔다. PHP에서사용할수있도록배열에저장 : mysql _ fetch _array() 사용 5>echo() 나 print() 를이용해서가져온값을찍는다. 모니터에표시한다. 6>mysql서버에연결을종료한다. mysql _ close() [ 메모리낭비방지 ] 406.426 Design & Analysis of Database System 55
PHP 와 Mysql 연동하기 $host= localhost $user= kiny729 (plaza mysql id) $password= 2082 (plaza mysql pw) $db= kiny729 (plaza mysql id) PHP 에서사용하는 DB (Mysql) 연동함수 $connect=mysql _ connect ( $host, $user, $password ); mysql _ select _db ( $db, $connect); result = mysql _ query ("create table diary_plus". "(num int(3) not null auto _ increment primary key,". "nal data, writer varchar(30),". contents blob, pw tinytext,". related int(3))", $db); db data-table 생성함수 406.426 Design & Analysis of Database System 56
PHP 와 Mysql 연동하기 <? $link = mysql _ connect ( localhost, root, root2 ) or die( 연결할수없다. ); $result = mysql _ drop _ db( zzz, $link); if( $result ){ echo 디비삭제성공 ; }else{ echo 실패 } mysql _ close ($link)?> echo() : 화면에문자열을출력하는함수이다. 안이나 ( ) 안에있는것을출력한다. 406.426 Design & Analysis of Database System 57
406.426 Design & Analysis of Database System 58 MySql 관리 (phpmyadmin)
MySql 관리 Check http://di.snu.ac.kr/courses/db07/ Database Modeling Tools DBMS Management Tools (Web or C/S version) 406.426 Design & Analysis of Database System 59
회원가입폼만들기 sign_up.php <form name="signup" action="add_user.php" method="post" target="_blank"> id : <input type="text" name="user_id" /> <br> password :<input type="password" name="user_password" /> <br> name : <input type="text" text name="user user_name name" /> <br> age : <input type="text" name="user_age" /> <br> <input type="submit" name="formbutton1"> <br> </form> 406.426 Design & Analysis of Database System 60
회원가입폼만들기 cont. <? add_user.php $link = mysql_connect( connect("localhost", "root", "root2") or die(" 연결할수없습니다."); //DB에접속 mysql_select_db("testdb") or die('could not select database'); //DB 선택 $query = "insert into user(user_id, user_password, user_name, user_age) values('".$user_id."', '".$user_password."', '".$user_name."', '".$user_age."')"; //query문작성 mysql_query($query) or die('query failed: '. mysql_error()); //query문실행?> <script language="javascript"> alert(" 회원가입이완료되었습니다."); window.close(); </script> 406.426 Design & Analysis of Database System 61
회원목록보여주기 show_users.php <? $link = mysql_connect( connect("localhost", "root", "root2") or die(" 연결할수없습니다."); //DB에접속 mysql_select_db("testdb") or die('could not select database'); //DB 선택 $query = "select user_id, user_name, user_age from user"; //query문작성 $result = mysql_query($query) or die('query failed: '. mysql_error()); //query문실행 while ($row = mysql_fetch_array($result)) { echo "user_id : ".$row[1]." user_name : ".$row[2]." user_age : ".$row[3]."<br>"; } // 출력?> 406.426 Design & Analysis of Database System 62
로그인 <form name = "loginform" action="login _ act.php" p method="post"> <h3>log In</h3> <h4>username:</h4> <input type="text" name="user_id"/> <h4>password:</h4> <input type="password" password name="user user_pw pw"/> <br><br> <input type="submit"> </form> 406.426 Design & Analysis of Database System 63
로그인 <??> session_start( start( ); $conn = mysql_connect($host, $user, $pass) or die ('Error connecting to mysql'); mysql_select_db( testdb ); $query = "SELECT user_id FROM user where user_id='$user_id' and password='$user_pw'"; $result = mysql_query($query); query($query); $success = null; if ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $success = $row[ user_id']; } mysql_close($conn); if (isset($success)) { $_SESSION['session_user_id'] = $user_id; echo " <script> document.location.href='/'; </script> "; } else { echo " <script> document.location.href='login_fail.php'; </script> "; } 406.426 Design & Analysis of Database System 64
로그인여부확인 <??> if (isset($_session['session_user_id'])) { echo " 로그인되어있습니다 "; echo "<a href='logout.php'>logout</a>"; } else { echo " 로그인되어있지않습니다 "; echo "<a href='login.php'>login</a>"; } 406.426 Design & Analysis of Database System 65