오라클 연동할 테이블 구조
오라클 입력 프로그램
입력 프로그램 실습
student, professor 테이블 입력 프로그램 만들기
student table 입력 프로그램
st_in.html
<html><head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title> student 입력폼 </title>
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<form name="insert" action="st_in.php" method="POST">
<center>
<table border="0" width="250">
<tr>
<td width="50"><p align="center">학번</p></td>
<td> <input type="text" name="sno"></td>
</tr>
<tr>
<td width="50"><p align="center">이름</p></td>
<td> <input type="text" name="sname"></td>
</tr>
<tr>
<td width="50"><p align="center">성별</p></td>
<td> 남<input type="radio" name="sex" value="남">,
여<input type="radio" name="sex" value="여"></td>
</tr>
<tr>
<td width="50"><p align="center">학과</p></td>
<td> <select name="major" size="1">
<option value="화학">화학</option>
<option value="생물">생물</option>
<option value="물리">물리</option>
<option value="유공">유공</option>
<option value="식영">식영</option></td>
</tr>
<tr>
<td width="50"><p align="center">학년</p></td>
<td> 1<input type="radio" name="syear" value="1">,
2<input type="radio" name="syear" value="2">,
3<input type="radio" name="syear" value="3">,
4<input type="radio" name="syear" value="4"></td>
</tr>
<tr>
<td width="50"><p align="center">학점</p></td>
<td> <input type="text" name="avr"></td>
</tr>
<tr>
<td colspan="2">
<p align="center"><input type="submit" name="확인" value="확인"></p>
</td>
</tr>
</table>
</form>
</body></html>
st_in.php
<?
$sno = $_POST[sno];
$sname = $_POST[sname];
$sex = $_POST[sex];
$major = $_POST[major];
$syear = $_POST[syear];
$avr = $_POST[avr];
require('conn.php');
$sql="insert into student (sno, sname, sex, major, syear, avr)
values ('$sno', '$sname', '$sex', '$major', $syear, $avr)";
$result=oci_parse($conn,$sql); // SQL문을 파싱해서 실행 계획을 생성한다.
$re=oci_execute($result); // SQL문을 실행한다.
oci_free_statement($result);
oci_close($conn);
if($re) echo("정상 입력 되었습니다.");
// echo(" <meta http-equiv='Refresh' content = '0; URL=st_vi.php'>");
?>
윈도우 cmd 창에서 sqlplus st04/st04@dal로 접속 후 테스트
SQL> SELECT * FROM student WHERE sno=202112;
SNO SNAME SEX SYEAR MAJOR AVR
------- ---------- --- ---------- ------- ----------
202112 학생임 여 3 화학 4.5
professor table 입력 프로그램
pr_in.html
<html><head>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
<title> professor 입력폼 </title>
</head>
<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
<form name="insert" action="pro_in.php" method="POST">
<center>
<table border="0" width="250">
<tr>
<td width="50"><p align="center">교수번호</p></td>
<td> <input type="text" name="pno"></td>
</tr>
<tr>
<td width="50"><p align="center">교수이름</p></td>
<td> <input type="text" name="pname"></td>
</tr>
<tr>
<td width="50"><p align="center">학과</p></td>
<td> <select name="section" size="1">
<option value="화학">화학</option>
<option value="생물">생물</option>
<option value="물리">물리</option>
<option value="유공">유공</option>
<option value="식영">식영</option></td>
</tr>
<tr>
<td width="50"><p align="center">직위</p></td>
<td> <select name="orders" size="1">
<option value="정교수">정교수</option>
<option value="부교수">부교수</option>
<option value="조교수">조교수</option>
</tr>
<tr>
<td width="50"><p align="center">부임일</p></td>
<td> <input type="date" name="hiredate"></td>
</tr>
<tr>
<td colspan="2">
<p align="center"><input type="submit" name="확인" value="확인"></p>
</td>
</tr>
</table>
</form>
</body></html>
pro_in.php
<?
$pno = $_POST[pno];
$pname = $_POST[pname];
$section = $_POST[section];
$orders = $_POST[orders];
$hiredate = $_POST[hiredate];
require('conn.php');
$sql="insert into professor (pno, pname, section, orders, hiredate)
values ('$pno', '$pname', '$section', '$orders', TO_DATE('$hiredate', 'YYYY/MM/DD'))";
$result=oci_parse($conn,$sql); // SQL문을 파싱해서 실행 계획을 생성한다.
$re=oci_execute($result); // SQL문을 실행한다.
oci_free_statement($result);
oci_close($conn);
if($re) echo("정상 입력 되었습니다.");
// echo(" <meta http-equiv='Refresh' content = '0; URL=st_vi.php'>");
?>
윈도우 cmd 창에서 sqlplus st04/st04@dal로 접속 후 테스트
SQL> SELECT * FROM professor WHERE pno=2021;
PNO PNAME SECTION ORDERS HIREDATE
------- ---------- ------- ------- ----------
2021 교수다 물리 정교수 2021/07/05
출력 프로그램
패치 작업을 행의 개수만큼 한다.
OCI_NUM : 배열의 키값을 숫자로 바꾼다.
OCI_ASSOC : 배열의 키값이 컬럼 이름으로 바꿔준다.
$row 라고하는 일차원배열을 생성해 출력한다.
$result는 계속 한 행씩 가져간다.
OCI_ASSOC 를 이용한 출력프로그램 생성
st_vi.php
<?
echo("<a href=./st_in.html>자료 입력하기</a><hr>");
require('conn.php');
$sql="select sno, sname, sex, major, syear, to_char(avr,'0.00') avr
from student order by sno"; //결과값이 resource로 넘어옴.
$result=oci_parse($conn,$sql); //먼저 파싱한다.
oci_execute($result); //execute 하면 $result가 테이블 컬럼 첫번째 값을 가리킴
echo("<table border='0'>");
while ($row = oci_fetch_array($result, OCI_ASSOC)){
echo("
<tr>
<td width='50'><p align='center'>{$row['SNO']}</p></td>
<td width='80'><p align='center'>{$row['SNAME']}</p></td>
<td width='20'><p align='center'>{$row['SEX']}</p></td>
<td width='20'><p align='center'>{$row['SYEAR']}</p></td>
<td width='50'><p align='center'>{$row['MAJOR']}</p></td>
<td width='30'><p align='center'>{$row['AVR']}</p></td>
</tr>
");
}
echo("</table>");
oci_free_statement($result);
oci_close($conn);
?>
pr_vi.php
<?
echo("<a href=./pro_in.html>자료 입력하기</a><hr>");
require('conn.php');
$sql="select pno, pname, section, orders, to_char(hiredate, 'YYYY/MM/DD') hiredate
from professor order by pno";
$result=oci_parse($conn,$sql);
oci_execute($result);
echo("<table border='0'>");
while ($row = oci_fetch_array($result, OCI_ASSOC)){
echo("
<tr>
<td width='50'><p align='center'>{$row['PNO']}</p></td>
<td width='80'><p align='center'>{$row['PNAME']}</p></td>
<td width='50'><p align='center'>{$row['SECTION']}</p></td>
<td width='50'><p align='center'>{$row['ORDERS']}</p></td>
<td width='100'><p align='center'>{$row['HIREDATE']}</p></td>
</tr>
");
}
echo("</table>");
oci_free_statement($result);
oci_close($conn);
?>
'PHP 공부 기록' 카테고리의 다른 글
PHP 9 - 세션 (0) | 2021.12.24 |
---|---|
PHP 8 - 다양한 기능 추가(삭제, 검색, 화면단위) 및 테이블 관계 입출력 (0) | 2021.12.24 |
PHP 6 - PHP를 이용한 DB 접속 (0) | 2021.12.12 |
(수정중) PHP 5 - 배열 (0) | 2021.11.23 |
PHP 4 - 폼(Form) (0) | 2021.11.19 |