406 426 design & analysis of database system406.426 design...
TRANSCRIPT
406 426 Design & Analysis of Database System406 426 Design & Analysis of Database System406.426 Design & Analysis of Database System
PHP
406.426 Design & Analysis of Database System
PHP
2007 Fall2007 Fall
지도교수: 박 종 헌 교수님 ([email protected])담당조교 정범석 (b d l03@ k )담당조교: 정범석 ([email protected])
Digital Interaction Lab.Industrial Engineering
Seoul National University
Reference Martial
PHP 프로그래밍 입문 : 웹 사이트 제작 완벽 실습래밍 입문 웹 사이 제작 완벽 실습
Hanbit Book저자: 황재호
발행일: 2005 / 12http://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 sitehttp://www.php.net
PHP is a widely-used general-purpose scripting language that is especially suited for Webis 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% 이상 유사C 언어와 90% 이상 유사
Oracle, PostgreSQL, Sybase 등 다양한 데이터베이스를 지원
PHP는 설치가 간단하고 배우기 쉬움
익히기 쉽기 때문에 JSP에 비해 개발 기간도 적게 걸림
구축된 웹 사이트 동작 속도가 빠름
간략한 역사
1994년 라스머스 레돌프가 PHP 개발
PHP/FI2 PHP 3 PHP 4로 발전PHP/FI2, PHP 3, PHP 4로 발전
현재 PHP 5 출시Zend 2 엔진 채용
406.426 Design & Analysis of Database System 5
다양한 객체지향 기능 추가
PHP vs. ASP/JSP
ASPMS 사에서 제공하는 윈도우 서버 환경(IIS) 필요
MS사의 MSSQL 데이터베이스만을 사용
JSPSUN사의 JAVA를 기반으로 웹 환경에 맞게 개발
JSP 언어는 보안성이 우수하고 많은 우수한 기능들이 포함
객체 지향 언어이기 때문에 초 자에게 어려움객체 지향 언어이기 때문에 초보자에게 어려움
406.426 Design & Analysis of Database System 6
PHP 기반의 운영환경
서버(서비 제 ) 컴 터클라이언트(서비스 요청) 컴퓨터
서버(서비스 제공) 컴퓨터
1웹 브라우저
(인터넷 익스플로러)웹 서버 프로그램
(아파치)
2
1
45
PHP
2 41 웹 페이지 요청
PHP 부분 처리 요청
데이터베이스
32 PHP 부분 처리 요청
가져온 데이터 아파치에 전달
3 데이터베이스로부터 가져옴
데이터베이스(MYSQL)
4 가져온 데이터 아파치에 전달
5 웹 페이지를 클라이언트에 제공
406.426 Design & Analysis of Database System 7
PHP 사용 예
<html><body><?
$kor=80; $eng=70; $math= 90;$ ; $ g ; $ ;$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 $eng; ?> </td></tr><tr><td> 수학 : <? echo $math; ?> </td></tr><tr><td> 합계 : <? echo $sum; ?> </td></tr><t ><td> 평균 <? h $ ?> </td></t ><tr><td> 평균 : <? echo $avg; ?> </td></tr>
</table></body>
406.426 Design & Analysis of Database System 8
</html>
Install Apache Web Server
Apache Web Server official pweb site
http://httpd.apache.org
Download Apache HTTP Server 2 2 3Server 2.2.3
the best available version Win32 Binary fileWin32 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 package [9,285Kb] - 24 Aug 2006 at p p g [ , ] ghttp://www.php.net/downloads.php
406.426 Design & Analysis of Database System 10
Install All in One
Apache + PHP + MySql + 관리도구p y q 관리 구
http://www.autoset.org/Download latest version of 올가
Install Reboot.
Web home directoryC:\autoset\public_htmlhttp://localhosthttp://localhost
406.426 Design & Analysis of Database System 11
Table of Contents
1 PHP의 시작과 끝1. PHP의 시작과 끝
2. 주석문
3. echo 문
4 상수와 변수4. 상수와 변수
5. 연산자
406.426 Design & Analysis of Database System 12
PHP의 시작과 끝
“안녕하세요 저는 홍길동입니다 “ 출력 (h ll h )“안녕하세요~~, 저는 홍길동입니다.“ 출력 (hello.php)
PHP 시작 줄바꿈
1 : <?2 : echo "안녕하세요~~<br>"; ec o 안녕하세 b ;3 : echo "저는 홍길동입니다.<br>"; 4 : ?>
PHP 끝Web Home Directory
밑에 실습 폴더명
http://localhost/myfolder/hello2.php• 익스플로러 주소창 :
밑에 실습 폴더명
406.426 Design & Analysis of Database System 13
http://localhost/myfolder/hello2.php익스플로러 주소창
주석문
comment phpcomment.php
한 줄 주석처리
1 : <?2 // 이 프로그램은 주석처리를 설명하는 프로그램입니다2 : // 이 프로그램은 주석처리를 설명하는 프로그램입니다. 3 : /* 주석처리를 여러 줄4 : 하고자하는 경우는5 : 이와 같이 합니다.*/6 : echo “이 내용은 출력됩니다."; 7 : ?>
여러 줄 주석처리
406.426 Design & Analysis of Database System 14
echo 문
echo phpecho.php
대소문자 구분 안함(동일하게 동작)
1 : <?2 : echo "---------------------- <br>";3 : echo "거북이<br>";3 : echo 거북이<br> ;4 : echo "토끼<br>";5 : echo "---------------------- <br>";6 : ECHO "&^%$&*%&&%*&(*(<br>";6 : ECHO "&^%$&*%&&%*&(*(<br>";7 : ECHO "---------------------- <br>";8 : ECHO "자동차<br>";
C O 버스9 : ECHO "버스<br>";10 : ECHO "---------------------- <br>";11 : ?>
406.426 Design & Analysis of Database System 15
상수와 변수
var phpvar.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
13 : ?> 정수형 상수
총점과 평균 구하기
sum avg php
1 : <?$
sum_avg.php
2 : $kor =80;3 : $eng =70;4 : $math = 90;5
총점 구하기
5 :6 : $sum = $kor + $eng + $math;7 : $avg = $sum/3;8 : 평균 구하기8 :9 : echo ("국어 : $kor <br>");10 : echo ("영어 : $eng <br>");11 : echo ("수학 : $math <br>");
평균 구하기
11 : echo ( 수학 : $math <br> );12 : echo ("합계 : $sum <br>");13 : echo ("평균 : $avg <br>");14 : ?>
406.426 Design & Analysis of Database System 17
14 : ?>
거스름돈 계산하기
change php
1 : <?
change.php
주석문2 : $money = 3000; // 지불한 돈3 : $price = 800; // 개당 물건 가격4 : $num = 3; // 구매 개수
주석문
5 :6 : $change = $money - $price * $num; // 거스름돈 = 3000 - 800 * 37 :
물건값 $8 : echo ("물건값 : $price <br>");9 : echo ("구매개수 : $num <br>");10 : echo ("지불액 : $money <br>");11 h ("거스름돈은 $ h 원 입니다 <b >")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 증가
감소(--) $a-- 현재 $a 값에서 1 감소
406.426 Design & Analysis of Database System 19
산술 연산자 예제
1 : <?1 : <?2 : $a = 3;3 : $b = 2;5 : $c = $a + $b;5 : $c = $a + $b;7 : $b = $a * $b;9 : $c = $a + $b * $c;1010 :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
20 : ?>
점 (.) 연산자
1 : <?1 : <?2 : $a = "토끼 ";3 : $b = "거북이";4 :4 :5 : $c = $a.$b;6 :7 h $ " b "
두 개의 문자열 연결
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 %= 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 : <?1 : <?2 : $a = 10;4 : $a += 2; // $a = $a + 2 와 동일6 : $a = 7; // $a = $a 7 와 동일6 : $a -= 7; // $a = $a - 7 와 동일8 : $a *= 5; // $a = $a * 5 와 동일
10 : $a /= 5; // $a = $a / 5 와 동일12 $ % // $ $ % 와 동일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)가 둘 다 참이어야만 참($c>$d)
|| ($a>$b) || ($c>$d)
($a>$b)와 ($c>$d)가 둘 중 하나만 참이어도참
406.426 Design & Analysis of Database System 25
If ~ Else 예제
시험 점수가 80점 이상이면 합격 (pass php)시험 점수가 80점 이상이면 합격 (pass.php)
참이면 5행 실행거짓이면 7행 실행
1 : <?
거짓이면 7행 실행
1 : ?2 : $score = 70;3 :4 : if ($score >= 80)4 : if ($score >= 80)5 : echo ("점수가 {$score}점 이므로 합격입니다.<br>");6 : else7 : echo ("점수가 {$score}점 이므로 불합격입니다 <br>");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 “크거나 같다”에서 “같다”조건에 해당하여> 크거나 같다 9 > 9 크거나 같다 에서 같다 조건에 해당하여참
<= 작거나 같다 10 <= 7 10은 7보다 작거나 같지 않으므로 거짓
406.426 Design & Analysis of Database System 27
If 문 예제
입장료가 기본 10000원 7세 미만 무료 (free fee php)
1 : <?
입장료가 기본 10000원, 7세 미만 무료 (free_fee.php)
1 : <?2 : $fee = 10000;3 : $age = 5;4
참인 경우에만 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 phpodd.php
참인 경우에는 5행 실행
1 : <?
참 경우에 행 행거짓인 경우에는 7행 실행
2 : $a = 3;3 :4 : if ($a % 2 == 1)4 : if ($a % 2 1)5 : echo "$a 은(는) 홀수 입니다.<br>";6 : else7 : echo "$a 은(는) 짝수 입니다 <br>";7 : echo $a 은(는) 짝수 입니다.<br> ;8 : ?>
406.426 Design & Analysis of Database System 29
어떤 수가 100보다 큰지를 판별하는 예제
comp 100 phpcomp_100.php참인 경우에는 5행 실행
거짓인 경우에는 7행 실행
1 : <?2 : $a = 10;$ ;3 :4 : if ($a > 100)5 : echo "$a 은(는) 100 보다 큽니다 <br>";5 : echo $a 은(는) 100 보다 큽니다.<br> ;6 : else7 : echo "$a 은(는) 100 보다 크지 않습니다.<br>";8 : ?>8 : ?>
406.426 Design & Analysis of Database System 30
다이어트 필요 유무 판별 예제
diat php
1 : <?5 : $h = 170;
diat.php
5 : $h = 170;6 : $w = 40;7 : $a = ($h-100)*0.9;88 :9 : echo ("키 : $h <br>");10 : echo ("몸무게 : $w <br>");11 :12 : if ($w>$a)13 : echo ("다이어트가 필요할지도 모르겠군요.<br>");( )14 : else15 : echo ("다이어트가 필요하지 않군요.<br>");16 : ?>
406.426 Design & Analysis of Database System 31
16 : ?
운전면허
필기 70점 이상 실기 80점 이상 합격 (pass2 php)
1 : <?2 : /* 운전면허 합격조건은 필기 70점 이상, 실기 80점 이상이어야
필기 70점 이상, 실기 80점 이상 합격 (pass2.php)
2 : / 운전면허 합격조건은 필기 70점 이상, 실기 80점 이상이어야3 : 합니다. */5 : $pilgi = 75;6 : $silgi = 86;6 : $silgi = 86;7 :8 : echo "필기점수 : $pilgi<br>";9 echo "실기점수 $silgi<br>"9 : echo "실기점수 : $silgi<br>";10 :11 : if ($pilgi >= 70 and $silgi>=80)
합격입니다12 : echo "합격입니다<br>";13 : else14 : echo "불합격입니다<br>";
406.426 Design & Analysis of Database System 32
15 : ?>
다중 if-else 문 예제
점수에 따른 등급 표시 (grade php)
1 : <?2 : $s = 80;
점수에 따른 등급 표시 (grade.php)
2 : $s = 80;3 :4 : if ($s>=95 && $s<=100) echo("$s A+ <br>");7 l if ($ > 90 && $ < 94) h ("$ A <b >")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
30 : ?
Switch 문
1 : switch (변수)1 : switch (변수)2 : {3 : case 값1 :4 : 문장 1;
변수의 값이 값1 인 경우에 실행됨
4 : 문장 1;5 : break;6 : case 값2 :
문장 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 : <?1 : ?2 : $a = 2;4 : switch( $a )5 : {6 0 h "변수 \$ 가 0이기 때문에 이 줄이 실행되었군요 b "6 : case 0 : echo "변수 \$a가 0이기 때문에 이 줄이 실행되었군요~~<br>";8 : break;9 : case 1 : echo "변수 \$a가 1이기 때문에 이 줄이 실행되었군요~~<br>";11 : break;11 : break;12 : case 2 : echo "변수 \$a가 2이기 때문에 이 줄이 실행되었군요~~<br>";14 : break;15 : case 3 : echo "변수 \$a가 3이기 때문에 이 줄이 실행되었군요~~<br>";17 b k17 : 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)
1 : <?2 : $i = 1; // 초기값 설정
while 문 이용 1에서 10까지 출력 (while_1_10.php)
2 : $i = 1; // 초기값 설정3 :4 : while ($i <= 10) // 조건식이 거짓이 될 때까지 5행~8행 반복 실행5 {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)
1 : <?2 : $a=1; // 초기화
while 문 1 10까지 합 구하기 (while_sum_1_10.php)
2 : $a 1; // 초기화3 : $sum=0; // 누적합 초기화4 :5 : while($a<=10) // $a가 10이 될 때까지 7행과 8행 반복5 e($a 0) // $a가 0이 될 때까지 행과 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)for 문을 이용하여 1 10 출력하기 (for_1_10.php)
1 2 3
1 : <?2 : for ($i=1; $i <= 10; $i++) // $i 가 1 부터 10까지 10번 수행
1 2
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)
1 : <?2
for 문 1 10까지의 합계 (for_sum_1_10.php)
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>");10 : echo( 1에서 10까지 자연수의 합은 $sum 입니다.<br> );11 : ?>
406.426 Design & Analysis of Database System 39
For문을 활용한 구구단 예제
구구단표 만들기 (gugudan php)
1 : <?2 : echo("--------------------- <br>");
구구단표 만들기 (gugudan.php)
3 :4 : for($a=2; $a<=9; $a++)5 : {5 {6 : for($b=1; $b<=9; $b++)7 : {8 : $c = $a * $b;8 : $c = $a $b;9 : echo(" $a x $b = $c <br>");10 : }11 :11 :12 : echo("--------------------- <br>");13 : }14 ?
406.426 Design & Analysis of Database System 40
14 : ?>
While문과 Do-While문
• while 문 예제 • do ~ while 문 예제• while 문 예제 • do ~ while 문 예제
조건식이 앞에 존재 조건식이 뒤에 존재
1 : <?2 $i 100
1 : <?2 $i 100
조건식이 뒤에 존재
2 : $i = 100;3 :4 : while ($i <= 10)
2 : $i = 100;3 :4 : do
5 : {6 : echo $i."<br>";7 : }
5 : {6 : echo $i."<br>";7 : } while ($i <= 10)}
8 : ?>} ($ )
8 : ?>
406.426 Design & Analysis of Database System 41
배열 이용 합계와 평균 구하기
배열 이용 5 과목의 합계/평균 (array avg php)
1 : <?2 : //배열이용 합계, 평균구하기, 배열의 원소는 0부터 시작
배열 이용 5 과목의 합계/평균 (array_avg.php)
2 : //배열이용 합계, 평균구하기, 배열의 원소는 0부터 시작4 : $score[0]=80; $score[1]=90; $score[2]=90;7 : $score[3]=99; $score[4]=78;9 :9 :10 : $sum=0;11 : for($a=0; $a<=4; $a++)13 : $sum $sum+$score[$a];13 : $sum=$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>");
406.426 Design & Analysis of Database System 42
20 : ?>
array( ) 함수 이용한 1차원 배열
array( ) 함수를 이용 (array func avg php)
1 : <?2 : // array() 함수를 이용한 배열이용 합계, 평균구하기
array( ) 함수를 이용 (array_func_avg.php)
4 : $score = array(80, 90, 90, 99, 78);5 :6 : $sum=0;6 $su 0;7 : for($a=0; $a<=4; $a++)9 : $sum=$sum+$score[$a];10 :10 :12 : $avg=$sum/5;13 :14 : echo("과목 점수 : $score[0] $score[1] $score[2]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
16 : ?>
배열과 for 문 이용 예제
1차원 배열 예제 (array a b c php)
1 : <?2 : for($i=0; $i<10; $i++) // $a 에 1 ~ 10 입력
1차원 배열 예제 (array_a_b_c.php)
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 입력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의 합 입력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)
1 : <?2 : // 2차원 배열을 이용한 3명의 학생에 대한 5과목 합계와 평균
3명 학생 5과목 합계/평균 (array_2d_avg.php)
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 $ t d t $ + 132 : $student_num = $a + 1;33 : echo("$student_num 번째 학생의 성적 => 합계 : $sum,
평균 : $avg <br>"); }35 : ?>
406.426 Design & Analysis of Database System 45
35 : ?>
함수 정의 및 목적
함수 정의 : PHP 코드들의 집합으로써 어떤 역할을 수행하는 개체함수 정의 들의 집합 써 어떤 역할을 수행하는 개체
함수 사용 목적
재사용 : 하나의 함수를 만들어 놓으면 다음부터 그 함수를 계속해서
재사용을 할 수 있다. 예를 들어 평균을 구하는 부분을 하나의
함수로 만들어 놓으면 평균을 구하고 싶을 때마다 그 함수를함수로 만들어 놓으면 평균을 구하고 싶을 때마다 그 함수를
사용하면 된다. 모듈화 : 전체 프로그램의 복잡한 문제를 함수 내부의 문제로모듈화 : 전체 프로그램의 복잡한 문제를 함수 내부의 문제로
국한시켜 프로그램을 체계적으로 쉽게 프로그래밍을 해나갈 수
있게 만들어 준다.
406.426 Design & Analysis of Database System 46
수학관련 함수
함수명 역할함수명 역할
abs( ) 절대치 구하기
cos( ) 삼각형의 코사인 값 구하기
date( ) 현재 날짜 구하기( ) 현재 날짜 구하기
ceil( ) 올림 값 구하기
floor( ) 내림 값 구하기
round( ) 반올림 값 구하기
log( ) 로그 값 구하기
( ) 최대 값 구하기
406.426 Design & Analysis of Database System 47
max( ) 최대 값 구하기
반환 (retuen) 값이 없는 함수 예제
함수를 이용한 두 수의 합 (func plus 2num php)
1 : <?
함수를 이용한 두 수의 합 (func_plus_2num.php)
2 : function plus($a, $b)3 : {4 : $c = $a + $b;
함수 정의
$ $ $ ;5 : echo $c;6 : }7 : 함수 호출7 :8 : plus(10, 20);9 : echo "<br>";10 : plus(1000 3000);
함수 호출
10 : plus(1000, 3000);11 : ?>
406.426 Design & Analysis of Database System 48
반환 (return) 값을 가지는 함수 예제
반환 값을 가지는 함수 예 (func plus 2num ret php )
1 : <?2 : function plus($a $b)
반환 값을 가지는 함수 예 (func_plus_2num_ret.php )
2 : function plus($a, $b)3 : {4 : $c = $a + $b;6 t $
함수 정의
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
14 : ?
함수 이용 정수 합계
함수를 이용하여 정수의 합계 구하기 (func hap php)
1 : <?2 : // hap($a $b) 함수는 $a에서 $b 까지의 합을 구한다
함수를 이용하여 정수의 합계 구하기 (func_hap.php)
2 : // hap($a, $b) 함수는 $a에서 $b 까지의 합을 구한다.3 : function hap($a, $b)4 : {5 : $sum=0;5 : $sum=0;6 : while($a <= $b)7 : { $sum=$sum+$a;9 : $a++; }9 : $a++; }11 : return $sum;12 : }14 : $from = 1;14 : $from 1;15 : $to = 10;17 : $total = hap($from, $to);18 : echo("$from 에서 $to 까지의 합은 $total 입니다.<br>");
406.426 Design & Analysis of Database System 50
( );19 : ?>
Plaza 계정 신청
서울대 정보화포털 (http://portal.snu.ac.kr) 계정관리서울대 정 화 털 ( p p ) 계정관리
유료시스템신청 및 관리 에서 신청
신청한 ID와 동일한 입금명으로 계좌 입금
사용내역 및 입금 회 확인사용내역 및 입금조회 확인
* 서울대학교 Pl 서버 이외 개인 PC를 포함하여 어떠한 서버를* 서울대학교 Plaza 서버 이외 개인 PC를 포함하여 어떠한 서버를
사용해도 무방합니다.
406.426 Design & Analysis of Database System 51
Plaza 시스템 접속
http://di.snu.ac.kr/courses/DB06/ Link에서 Zterm.ext 다운로드p 에서 다운
(이외 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$ p _vi index.html
다음과 같이 작성하고 저장다음과 같이 작성하고 저장
<HTML><BODY><BODY>Welcome, My Name is XXX.</BODY></HTML>
406.426 Design & Analysis of Database System 53
Index.html 만들기
http://plaza.snu.ac.kr/~아이디/index.html 접속p p 아이디 접속
406.426 Design & Analysis of Database System 54
PHP와 Mysql 연동하기
PHPPHP MysqlMysql
1>mysql _ connect() : 연결2>mysql _ select _ db() : db 선택3>mysql _ query() : 테이블쿼리4>mysql fetch array()
kiny729
12
364>mysql _ fetch _array()쿼리한값을배열에저장5>echo() : 출력6>mysql _ close() : 종료
table table 3
y q _ ()
test content
45
testccomo
content좋다
1>mysql 서버에연결한다. ;mysql _ connect(); 2>mysql select db() : mysql안의 db를선택2>mysql _ select _ db() : mysql안의 db를선택3>mysql 안의 db안의테이블에서쿼리를수행한다. (mysql db의테이블에서데이터를입력/삭제하거나쿼리수행) : mysql _ query();4>쿼리수행한것을배열에저장해둔다. PHP에서사용할수있도록배열에저장
: mysql fetch array()사용
406.426 Design & Analysis of Database System 55
: mysql _ fetch _array()사용5>echo()나 print()를이용해서가져온값을찍는다. 모니터에표시한다.6>mysql서버에연결을종료한다.
mysql _ close() [메모리낭비방지]
PHP와 Mysql 연동하기
$$host=“localhost”
$user=“kiny729”(plaza mysql id)
$password=“2082”(plaza mysql pw) PHP에서사용하는$db=“kiny729”(plaza mysql id)
$connect=mysql connect (“$host”, “$user”, “$password”);
PHP에서사용하는DB (Mysql)연동함수
$connect mysql _ connect ( $host , $user , $password );
mysql _ select _db (“$db”, $connect);
lt l (" t t bl di l "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,".
“ l t d i t(3))" $db)“related int(3))", $db);
db data-table생성함수
406.426 Design & Analysis of Database System 56
db data-table생성함수
PHP와 Mysql 연동하기
<?$link = mysql _ connect (“localhost”, “root”, “root2”) or die(“연결할수없다.”);$result = mysql _ drop _ db(“zzz”, $link);if( $result ){
echo “디비삭제성공 “ ;삭 ;}else{
echo “실패”}mysql close ($link)y q _ ( )
?>
echo() : 화면에문자열을출력하는함수이다.()“ “안이나 (“ “)안에있는것을출력한다.
406.426 Design & Analysis of Database System 57
MySql 관리 (phpMyAdmin)
406.426 Design & Analysis of Database System 58
MySql 관리
Check http://di.snu.ac.kr/courses/DB07/pDatabase Modeling ToolsDBMS Management Tools (Web or C/S version)
406.426 Design & Analysis of Database System 59
회원 가입 폼 만들기
<form name="signup" action="add_user.php" method="post" target="_blank">
sign_up.php
id : <input type="text" name="user_id" /> <br>
password :<input type="password" name="user_password" /> <br>
name : <input type="text" name="user name" /> <br>name : <input type text name user_name /> <br>
age : <input type="text" name="user_age" /> <br>
<input type="submit" name="formbutton1"> <br>
</f ></form>
406.426 Design & Analysis of Database System 60
회원 가입 폼 만들기 cont.
add user php<?
$link = mysql connect("localhost" "root" "root2") or die("연결할 수 없습니다 ");
add_user.php
$link mysql_connect( localhost , root , root2 ) or die( 연결할 수 없습니다. );
//DB에 접속
mysql_select_db("testDB") or die('Could not select database');
//DB 선택
$ "i t i t ( id d )$query = "insert into user(user_id, user_password, user_name, user_age) values('".$user_id."', '".$user_password."', '".$user_name."', '".$user_age."')";
//query문 작성
l ($ ) di ('Q f il d: ' l ());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
</script>
회원 목록 보여주기
<? $link = mysql connect("localhost" "root" "root2") or die("연결할 수 없습니다 ");
show_users.php
<? $link mysql_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" method="post">g g _ p p p<h3>Log In</h3><h4>Username:</h4><input type="text" name="user_id"/><h4>Password:</h4><input type="password" name="user pw"/><input type= password name= user_pw /><br><br><input type="submit">p yp
</form>
406.426 Design & Analysis of Database System 63
로그인
<?session start( );session_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);$result mysql_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