2020. 5. 26.

[PHP] 오라클 연동 DB 입력해보기


웹서버에 미리 입력문과

테이블 입력을 위한

# score , course 프로그램으로 작성할 없다.

*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>
                </select></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>
    </center>
    </form>
    <br><hr>   
    </body>
    <? show_source(__FILE__); ?>
</html>



테이블에 인력된 데이터를 입력할 프로그램

*st_in.php

<?
$sno = $_POST[sno]; // 프로그램 내에서 post방식으로 전달된 변수를 폴더 간단히 표현하기
$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)";
// syear avr는 숫자로 되기 때문에 ''로 안감싸준다.

$result=oci_parse($conn,$sql); // sql문을 파싱해서 실행 계획을 생성한다.
$re=oci_execute($result);        // sql문을 실행한다.
// 아무것도 안하게 되면 execute는 자동으로 커밋한다.

oci_free_statement($result);
oci_close($conn);

if($re) echo("정상 입력 되었습니다.");
// echo(" <mata http-equiv='Refesh' content = '0 : URL=st_vi.php'>");

?>

*테스트

php 들어가서 table 만들어준다.

@c:\sql\school.sql




select * from student where sno=202020;


*pr_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="pr_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>
                </select></td>
            </tr>
            <tr>
                <td width="100"><p align="center">직위</p></td>
                <td>&nbsp;&nbsp;
정교수<input type="radio" name="orders" value="정교수">
                        부교수<input type="radio" name="orders" value="부교수">
                        조교수<input type="radio" name="orders" value="조교수">
                </td>
            </tr>
            <tr>
                <td width="100"><p align="center">입사일(ex: 99/12/17)</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>
    </center>
    </form>
    <br><hr>   
    </body>
    <? show_source(__FILE__); ?>
</html>


*pr_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', '$order', to_DATE('$hiredate','YYYY-MM-DD'))";


$result=oci_parse($conn,$sql);
$re=oci_execute($result);        
// 아무것도 안하게 되면 execute는 자동으로 커밋한다.

oci_free_statement($result);
oci_close($conn);

if($re) echo("정상 입력 되었습니다.");
// echo(" <mata http-equiv='Refesh' content = '0 : URL=pr_vi.php'>");
show_source(__FILE__);

?>


*확인

select * from professor;


*st_vi.php

<?
    echo("<a href=./st_in.html>자료 입력하기</a><hr>");
    // in 아니라 vi 연결해둬야한다. 먼저 보여줘야함
    require('conn.php');
   
    $sql="select sno, sname, sex, major, syear, avr
          from student order by sno";
    // 오름차순 정렬
    $result=oci_parse($conn,$sql);
    $re=oci_execute($result);
   
    while ($row = oci_fetch_array($result,OCI_NUM)){
        echo("$row[0]-$row[1]-$row[2]-$row[3]-$row[4]-$row[5] <br>");
    }
// $row 스칼라 1차원 배열
// 행에 해당하는게 0,1,2,3,4,5로나옴
    oci_free_statement($result);
    oci_close($conn);
    // 마지막으로 포인터와 남아있는 데이터를 없애준다.
    show_source(__FILE__);
?>


// 프로그램의 문제가 있다. 속도가 제일 빠르다.
// $ 5,6,7,8,9 뭐가 있는지 알수가 없다.

*pr_vi.php

<?
    echo("<a href=./pr_in.html>자료 입력하기</a><hr>");
   
    require('conn.php');
   
    $sql="select pno, pname, section, orders, hiredate
          from professor order by pno";
   
    $result=oci_parse($conn,$sql);
    $re=oci_execute($result);
   
    while ($row = oci_fetch_array($result,OCI_NUM)){
        echo("$row[0]-$row[1]-$row[2]-$row[3]-$row[4] <br>");
    }
   
    oci_free_statement($result);
    oci_close($conn);
   
    show_source(__FILE__);
?>


*sc_vi.php

<?
    echo("<a href=./sc_in.html>자료 입력하기</a><hr>");
   
    require('conn.php');
   
    $sql="select sno, cno, result
          from score order by result desc";
   
    $result=oci_parse($conn,$sql);
    $re=oci_execute($result);
   
    while ($row = oci_fetch_array($result,OCI_NUM)){
        echo("$row[0]-$row[1]-$row[2] <br>");
    }
   
    oci_free_statement($result);
    oci_close($conn);
   
    show_source(__FILE__);
?>

*co_vi.php

<?
    echo("<a href=./co_in.html>자료 입력하기</a><hr>");
   
    require('conn.php');
   
    $sql="select cno, cname,st_num, pno
          from course order by cno";
   
    $result=oci_parse($conn,$sql);
    $re=oci_execute($result);
   
    while ($row = oci_fetch_array($result,OCI_NUM)){
        echo("$row[0]-$row[1]-$row[2]-$row[3] <br>");
    }
   
    oci_free_statement($result);
    oci_close($conn);
   
    show_source(__FILE__);
?>

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

$result=oci_parse($conn,$sql);
oci_excute($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='50'><p align='center'>$row[SNAME]</p></td>
<td width='50'><p align='center'>$row[SEX]</p></td>
<td width='50'><p align='center'>$row[SYEAR]</p></td>
<td width='50'><p align='center'>$row[MAJOR]</p></td>
<td width='50'><p align='center'>$row[AVR]</p></td>
</tr>
");
}
echo("</table>");
oci_free_statement($result);
oci_clse($conn);
show_source(__FILE__);

?>


댓글 없음:

댓글 쓰기