오라클 연동할 테이블 구조


오라클 입력 프로그램

 

입력 프로그램 실습

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>&nbsp;&nbsp;<input type="text" name="sno"></td>
  </tr>
  <tr>
    <td width="50"><p align="center">이름</p></td>
    <td>&nbsp;&nbsp;<input type="text" name="sname"></td>
  </tr>
  <tr>
    <td width="50"><p align="center">성별</p></td>
    <td>&nbsp;&nbsp;남<input type="radio" name="sex" value="남">,
                    여<input type="radio" name="sex" value="여"></td>
  </tr>
  <tr>
    <td width="50"><p align="center">학과</p></td>
    <td>&nbsp;&nbsp;<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>&nbsp;&nbsp;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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<input type="text" name="pno"></td>
  </tr>
  <tr>
    <td width="50"><p align="center">교수이름</p></td>
    <td>&nbsp;&nbsp;<input type="text" name="pname"></td>
  </tr>
  <tr>
    <td width="50"><p align="center">학과</p></td>
    <td>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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);
?>

 

+ Recent posts