• 검색 결과가 없습니다.

406.426 Design & Analysis of Database System

N/A
N/A
Protected

Academic year: 2022

Share "406.426 Design & Analysis of Database System"

Copied!
66
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

406 426 Design & Analysis of Database System 406 426 Design & Analysis of Database System 406.426 Design & Analysis of Database System

PHP

406.426 Design & Analysis of Database System

PHP

2007 Fall 2007 Fall

지도교수: 박 종 헌 교수님 (jonghun@snu.ac.kr) 담당조교 정범석 (b

d l03@ k

) 담당조교: 정범석 (bumdol03@snu.ac.kr)

Digital Interaction Lab.

Industrial Engineering

(2)

Reference Martial

™ PHP 프로그래밍 입문 : 웹 사이트 제작 완벽 실습래밍 입문 웹 사이 제작 완벽 실습

„ Hanbit Book

„ 저자: 황재호

„ 발행일: 2005 / 12

„ http://www.hanbitbook.co.kr/look.php?isbn=89-7914-374-5

(3)

Table of Contents

™ PHP 개요개

™ PHP 동작 원리

™ 윈도우 환경에서 Apache 설치

™ PHP 프로그램 설치

™ Apache와 PHP 환경 설정

™ Mysql 설치

™ 실습 환경 구축

(4)

What is PHP?

™ PHP official web site Æ

http://www.php.net

™ PHP is a widely-used general- purpose scripting language that is especially suited for Web

is especially suited for Web development and can be embedded into HTML.

™ “Hypertext Preprocessor”의 약어

약어

(5)

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 엔진 채용

(6)

PHP vs. ASP/JSP

™ ASP

„ MS 사에서 제공하는 윈도우 서버 환경(IIS) 필요

„ MS사의 MSSQL 데이터베이스만을 사용

™ JSP

„ SUN사의 JAVA를 기반으로 웹 환경에 맞게 개발

„ JSP 언어는 보안성이 우수하고 많은 우수한 기능들이 포함 객체 지향 언어이기 때문에 초 자에게 어려움

„ 객체 지향 언어이기 때문에 초보자에게 어려움

(7)

PHP 기반의 운영환경

서버(서비 ) 컴

클라이언트(서비스 요청) 컴퓨터 서버(서비스 제공) 컴퓨터

웹 브라우저

1

(인터넷 익스플로러)

웹 서버 프로그램 (아파치)

2 1

5 4

PHP

2 4

1 웹 페이지 요청

PHP 부분 처리 요청

데이터베이스

3

2 PHP 부분 처리 요청

가져온 데이터 아파치에 전달 3 데이터베이스로부터 가져옴

데이터베이스 (MYSQL)

4 가져온 데이터 아파치에 전달 5 웹 페이지를 클라이언트에 제공

(8)

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>

</html>

(9)

Install Apache Web Server

™ Apache Web Server official p web site

Æ

http://httpd.apache.org

™ Download Apache HTTP Server 2 2 3

Server 2.2.3

„ the best available version

„ Win32 Binary file

„ Win32 Binary file

(apache_2.2.3-win32-x86-

no_ssl.msi)

(10)

Install PHP

™ Download PHP 5.1.6 zip package

p p g

[9,285Kb] - 24 Aug 2006 at [ , ] g

http://www.php.net/downloads.php

(11)

Install All in One

™ Apache + PHP + MySql + 관리도구p y q 관리 구

„ http://www.autoset.org/

„ Download latest version of 올가

„ Install Æ Reboot.

„ Web home directory

„

C:\autoset\public_html

„

http://localhost

„

http://localhost

(12)

Table of Contents

1 PHP의 시작과 끝 1. PHP의 시작과 끝 2. 주석문

3. echo 문

4 상수와 변수

4. 상수와 변수

5. 연산자

(13)

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

• 익스플로러 주소창 :

밑에 실습 폴더명 http://localhost/myfolder/hello2.php

익스플로러 주소창

(14)

주석문

comment php comment.php

한 줄 주석처리

1 : <?

2

//

이 프로그램은 주석처리를 설명하는 프로그램입니다

2 :

//

이 프로그램은 주석처리를 설명하는 프로그램입니다.

3 :

/*

주석처리를 여러 줄

4 : 하고자하는 경우는

5 : 이와 같이 합니다.*/

6 : echo “이 내용은 출력됩니다.";

7 : ?>

여러 줄 주석처리

(15)

echo 문

echo php echo.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 : ?>

(16)

상수와 변수

var php 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 ? 정수형 상수

13 : ?> 정수형 상수

(17)

총점과 평균 구하기

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 : ?>

14 : ?>

(18)

거스름돈 계산하기

change php 1 : <?

change.php

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 h ("거스름돈은 $ h 원 입니다 <b >") 11 : echo ("거스름돈은 $change 원 입니다.<br>");

12 : ?>

(19)

산술 연산자

연산자 결과

더하기(+) 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 감소

(20)

산술 연산자 예제

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;

10 10 :

11 : echo "$a $b $c<br>";

13 : $c = $a % $b;

14 :

15 : $b++;

17 : $a--;$ ; 18 :

19 : echo "$a $b $c<br>";

20 : ?>

20 : ?>

(21)

점 (.) 연산자

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 : ?>

(22)

대입 연산자

연산자 동일한 수식 설명

연산자 동일한 수식 설명

= $a = 3 3을 변수 $a에 대입

+= $a += 3 $a = $a +3 $a + 3 결과값을 $a 값에 대입 -++ $a -= 3$a 3 $a = $a - 3$a $a 3 $a - 3 결과값을 $a 값에 대입$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 값에 대입

(23)

대입 연산자 예제

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 : ?>

(24)

비교 연산자

연산자 예 설명

연산자 예 설명

== $a == $b $a와 $b가 서로 같은 값을 가지면 참

!= $a != $b $a와 $b가 서로 다른 값을 가지면 참

$ $ $ 의 값이 $ 의 값 다 면 참

> $a > $b $a의 값이 $b의 값보다 크면 참

< $a < $b $a의 값이 $b의 값보다 작으면 참

>= $a >= $b $a의 값이 $b의 값보다 크거나 같으면 참

<= $a <= $b $a의 값이 $b의 값보다 작거나 같으면 참

(25)

논리 연산자

연산 예 설명

연산 자

예 설명

! !$a $ $a가 참이면 거짓, $a가 거짓이면 참 $ 가 참이 거짓, $ 가 거짓이 참

&& ($a>$b) &&

($c>$d)

($a>$b)와 ($c>$d)가 둘 다 참이어야만 참 ($c>$d)

|| ($a>$b) ||

($c>$d)

($a>$b)와 ($c>$d)가 둘 중 하나만 참이어도

(26)

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 :

else

7 : echo ("점수가 {$score}점 이므로 불합격입니다 <br>");

7 : echo ("점수가 {$score}점 이므로 불합격입니다.<br>");

8 : ?>

(27)

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보다 작거나 같지 않으므로 거짓

(28)

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 : ?>

(29)

홀수 / 짝수 판별 예제

odd php odd.php

참인 경우에는 5행 실행

1 : <?

경우에

거짓인 경우에는 7행 실행

2 : $a = 3;

3 :

4 :

if

($a % 2 == 1) 4 :

if

($a % 2

1)

5 : echo "$a 은(는) 홀수 입니다.<br>";

6 :

else

7 : echo "$a 은(는) 짝수 입니다 <br>";

7 : echo $a 은(는) 짝수 입니다.<br> ; 8 : ?>

(30)

어떤 수가 100보다 큰지를 판별하는 예제

comp 100 php comp_100.php

참인 경우에는 5행 실행 거짓인 경우에는 7행 실행 1 : <?

2 : $a = 10;$ ; 3 :

4 :

if

($a > 100)

5 : echo "$a 은(는) 100 보다 큽니다 <br>";

5 : echo $a 은(는) 100 보다 큽니다.<br> ; 6 :

else

7 : echo "$a 은(는) 100 보다 크지 않습니다.<br>";

8 : ?>

8 : ?>

(31)

다이어트 필요 유무 판별 예제

diat php

1 : <?

5 : $h = 170;

diat.php

5 : $h = 170;

6 : $w = 40;

7 :

$a = ($h-100)*0.9;

8 8 :

9 : echo ("키 : $h <br>");

10 : echo ("몸무게 : $w <br>");

11 :

12 :

if

($w>$a)

13 : echo ("다이어트가 필요할지도 모르겠군요.<br>");( ) 14 :

else

15 : echo ("다이어트가 필요하지 않군요.<br>");

16 : ?>

16 : ?

(32)

운전면허

필기 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 :

else

14 : echo "불합격입니다<br>";

15 : ?>

(33)

다중 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 : ?>

30 : ?

(34)

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 : }

(35)

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 k

17 : break;

18 : default : echo "변수 \$a가 0, 1, 2, 3에 해당되지 않는군요~~<br>";

20 : }

21 : ?>

(36)

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 : ?>

(37)

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 : ?>

(38)

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 : ?>

(39)

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 : ?>

(40)

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 ? 14 : ?>

(41)

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 : ?>

(42)

배열 이용 합계와 평균 구하기

배열 이용 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>");

20 : ?>

(43)

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>");

(44)

배열과 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 : ?>

(45)

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 $ + 1

32 : $student_num = $a + 1;

33 : echo("$student_num 번째 학생의 성적 => 합계 : $sum, 평균 : $avg <br>");

}

35 : ?>

35 : ?>

(46)

함수 정의 및 목적

™ 함수 정의 : PHP 코드들의 집합으로써 어떤 역할을 수행하는 개체함수 정의 들의 집합 써 어떤 역할을 수행하는 개체

™ 함수 사용 목적

„ 재사용 : 하나의 함수를 만들어 놓으면 다음부터 그 함수를 계속해서 재사용을 할 수 있다. 예를 들어 평균을 구하는 부분을 하나의

함수로 만들어 놓으면 평균을 구하고 싶을 때마다 그 함수를 함수로 만들어 놓으면 평균을 구하고 싶을 때마다 그 함수를 사용하면 된다.

„ 모듈화 : 전체 프로그램의 복잡한 문제를 함수 내부의 문제로

„ 모듈화 : 전체 프로그램의 복잡한 문제를 함수 내부의 문제로

국한시켜 프로그램을 체계적으로 쉽게 프로그래밍을 해나갈 수

있게 만들어 준다.

(47)

수학관련 함수

함수명 역할

함수명 역할

abs( ) 절대치 구하기

cos( ) 삼각형의 코사인 값 구하기

date( ) ( ) 현재 날짜 구하기 현재 날짜 구하기

ceil( ) 올림 값 구하기

floor( ) 내림 값 구하기

round( ) 반올림 값 구하기

log( ) 로그 값 구하기

( ) 최대 값 구하기

max( ) 최대 값 구하기

(48)

반환 (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 : ?>

(49)

반환 (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 : ?>

14 : ?

(50)

함수 이용 정수 합계

함수를 이용하여 정수의 합계 구하기 (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>");( );

19 : ?>

(51)

Plaza 계정 신청

™ 서울대 정보화포털 (http://portal.snu.ac.kr) Æ 계정관리서울대 정 화 털 (

p p

) 계정관리 Æ 유료시스템신청 및 관리 에서 신청

™ 신청한 ID와 동일한 입금명으로 계좌 입금

사용내역 및 입금 회 확인

™ 사용내역 및 입금조회 확인

* 서울대학교 Pl 서버 이외 개인 PC를 포함하여 어떠한 서버를

* 서울대학교 Plaza 서버 이외 개인 PC를 포함하여 어떠한 서버를

사용해도 무방합니다.

(52)

Plaza 시스템 접속

™

http://di.snu.ac.kr/courses/DB06/ p

Æ Link에서 Zterm.ext 다운로드에서 다운 (이외 SSH Telnet이 지원되는 Telnet program 사용해도 무방)

(53)

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>

(54)

Index.html 만들기

™

http://plaza.snu.ac.kr/~아이디/index.html p p 아이디

접속접속

(55)

PHP와 Mysql 연동하기

PHP

PHP Mysql Mysql

1>mysql _ connect() : 연결

2>mysql _ select _ db() : db 선택 3>mysql _ query() : 테이블쿼리 4>mysql fetch array()

kiny729

1

2

6 3

4>mysql _ fetch _array()

쿼리한 값을 배열에 저장

5>echo() : 출력

6>mysql _ close() : 종료

table table

3

y q _ ()

test content

4 5

test ccomo

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()사용

: mysql _ fetch _array()사용

(56)

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생성함수 db data-table생성함수

(57)

PHP와 Mysql 연동하기

<?

$link = mysql _ connect (“localhost”, “root”, “root2”) or die(“연결할 수 없다.”);

$result = mysql _ drop _ db(“zzz”, $link);

if( $result ){

echo “디비 삭제 성공 “ ;

; }else{

echo “실패”

}

mysql y q _ close ($link) ( )

?>

echo() : 화면에 문자열을 출력하는 함수이다. ()

“ “안이나 (“ “)안에 있는 것을 출력한다.

(58)

MySql 관리 (phpMyAdmin)

(59)

MySql 관리

™ Check http://di.snu.ac.kr/courses/DB07/

p

„ Database Modeling Tools

„ DBMS Management Tools (Web or C/S version)

(60)

회원 가입 폼 만들기

<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>

(61)

회원 가입 폼 만들기 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>

</script>

(62)

회원 목록 보여주기

<? $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>";

} //출력 //출력

?>

(63)

로그인

<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>

(64)

로그인

<?

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>

";

}

?

?>

(65)

로그인 여부 확인

<?

if (isset($_SESSION['session_user_id'])) { echo "로그인 되어있습니다";

echo "<a href='logout.php'>logout</a>";

} else {

echo "로그인 되어있지 않습니다";

echo "<a href='login.php'>login</a>";

}

?>

(66)

참조

관련 문서

이 프로그램 에서는 관찰을 통해 각각의 특징을 찾아내고, 공통되는 특징을 가진 것 끼리 묶을 수 있도록 분류 기준을 정하고, 분류 기준에 의해 분류 작업을 하게

STEAM 프로그램의 효율적인 적용을 위하여 프로그램을 운영하시는 선생님들께서 는 학생들 스스로 문제를 파악하고 해결할 수 있도록 도와주는 역할을 해주시기

STEAM 프로그램의 효율적인 적용을 위하여 프로그램을 운영하시는 선생님들께서 는 학생들 스스로 문제를 파악하고 해결할 수 있도록 도와주는 역할을 해주시기

본 연구회에서는 디자인 싱킹을 활용하여 실생활의 문제 상황을 인식하고 창의적 인 제품을 제작하여 문제를 해결하는 발명 프로그램을 개발하고 적용하였다.. 디자 인

○ 문제 해결을 위해 네트워크를 구축하고 프로그래밍을 통해 문제 해결하는 경험을 제공하는 STEAM 프로그램은 없는 것으로 확인되었다... 교육 활동을 통해

문제를 해결하는 과정이 계획적이고 체계적으로 잘 나타나 있음... 실험을 반복할수록 데이터의 신뢰

모든 프로그램을 사용할 수도 있겠지만, 부분적으로도 프로그램을 활용할 수 있을 것이며, 차후년에 프로그램 활동을 재구성하는 방법 또한 강구하도록 하겠다....

STEAM 프로그램의 효율적인 적용을 위하여 프로그램을 운영하시는 선생님들께서 는 학생들 스스로 문제를 파악하고 해결할 수 있도록 도와주는 역할을 해주시기