๐ก Oracle DB๋ฅผ ์ฐ๋ํ์ฌ PHP๋ฅผ ํ์ฉํ ๋๋ก๋ช ์ฃผ์ ๊ฒ์ ์ฌ์ดํธ ๊ตฌํ
โค๏ธ OS : Rocky Linux
โค๏ธ WAS : Apache
โค๏ธ DB : Oracle
โค๏ธ LANGUAGE : html, php
โค๏ธ TOOL : intelliJ IDEA, XShell, Toad for Oracle
โโโ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์ค๋ฉด ์ข์ ๊ธ โโโ
- APM ๊ตฌ๋์๋ฆฌ
APM์ ๊ฐ๋ ๋ฐ ๊ตฌ๋ ์๋๋ฆฌ์ค
๐ก APM ์ด๋? A = Apache P = PHP M = MySQL Apache(์ํ์น)๋ ์๋ฒ, PHP๋ ์น ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, MySQL์ DB์ ๊ตฌ์ถ ๋ฐ ์ธ์ด๋ฅผ ์๋ฏธํ๋ค. โ Apache (์น ์๋ฒ) ์น ์๋น์ค๋ฅผ ์ ๊ณตํด์ฃผ๋ ์๋ฒ๋ก์ Apache HTTP serve..
ye5ni.tistory.com
- ๊ฑด๋ฌผ DB ์ด๊ธฐ ์ธํ
[MySQL] ๊ฑด๋ฌผ DB ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ERD ์ค๊ณ ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถํด๋ณด๊ธฐ
๐ก ๋๋ก๋ช ์ฃผ์ DB๋ฅผ ์ ๊ณตํ๋ ์ฌ์ดํธ์์ ๊ฑด๋ฌผ DB ๋ฐ์ดํฐ๋ฅผ ๋ค์ด ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ! โค๏ธ OS : Rocky Linux โค๏ธ DB : Maria DB โ ์ด๊ธฐ ํ๊ฒฝ ์ธํ Step 1. ๊ฑด๋ฌผ DB ์๋ฃ๋ฅผ ์ ๊ณตํ๋ ์ฌ์ดํธ์ ์ ์ํ
ye5ni.tistory.com
โโโ ์ค๋ผํด ์ฐ๋ ์๋ฆฌ์ฆ 1~4ํ โโโ
- 1ํ
[Oracle] Rocky Linux์ Oracle Instant Client ์ค์นํ๊ธฐ *์ค๋ผํด ์ฐ๋ 1ํ*
๐ก ๋ฆฌ๋ ์ค์ Oracle Instant Client ์ค์นํ๋ ๋ฐฉ๋ฒ โค๏ธ OS : Rocky Linux โค๏ธ Tools : Xshell 7, Xftp 7, VirtualBox Step 1. ์ค๋ผํด ์ธ์คํดํธ ํด๋ผ์ด์ธํธ ๋ค์ด๋ก๋ ์ฌ์ดํธ์ ์ ์ํ๊ธฐ https://www.oracle.com/d..
ye5ni.tistory.com
- 2ํ
[Linux] Apache Web Server ์ค์นํ๋ ๋ฐฉ๋ฒ *์ค๋ผํด ์ฐ๋ 2ํ*
๐ก Linux์ Apache Web Server ์ค์นํ๊ธฐ โ Apache Web Server ๋? ์ํ์น ์ํํธ์จ์ด ์ฌ๋จ์์ ๊ด๋ฆฌํ๋ ์คํ์์ค ์น ์๋ฒ๋ก์, ๋ฆฌ๋ ์ค๋ฅผ OS๋ก ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๊ณ ์๋ค. ์น ์๋ฒ ๊ตฌ๋์ ์ํ APM ์ค A
ye5ni.tistory.com
- 3ํ
[Oracle/PHP] PHP์ oci8 ์ค์น ๋ฐ ์ฐ๋ ๋ฐฉ๋ฒ *์ค๋ผํด ์ฐ๋ 3ํ*
๐ก PHP์ oci8 ์ค์นํ๊ณ OracleDB์ ์ฐ๋ํด๋ณด๊ธฐ โค๏ธ OS : Rocky Linux โค๏ธ DB : Oracle https://ye5ni.tistory.com/164 โโโ ์ ๊ณผ์ ์ ์ด๋ฏธ ์๋ฃํ๊ณ ๋ฐ๋ผํ์๋ฉด ๋์ฑ ์ข์ต๋๋ค :) โโโ 1. Oracle instant..
ye5ni.tistory.com
โ ์ด๊ธฐ ์ค๊ณ

1. ์๋๋ช , ์๊ตฐ๊ตฌ๋ช , ์๋ฉด๋๋ช ์ selectBox๋ก ๊ตฌํํ๋ค.
๋ฐ๋ผ์ DB์์ ๊ฐ์ ธ์จ ์ ๋ณด๋ฅผ 'โฝ' ๋ฒํผ์ ๋๋ ์ ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ผ ์ ์๋๋ก ํ๋ค.
2. ์ ํํ ๊ฐ์ ๋ง์ถฐ์ filtering ๋๊ฒ ๊ตฌํํ๋ค.
๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ์๋๋ช ์์ '๊ฒฝ๊ธฐ๋'๋ฅผ ์ ํํ๋ค๋ฉด, ๊ฒฝ๊ธฐ๋์ ํด๋นํ๋ ์์์, ์์์, ์ฑ๋จ์ ๋ฑ๋ฑ์ ๊ฒ๋ค๋ง ์๊ตฐ๊ตฌ๋ช ์ ์ถ๋ ฅ์ด ๋ ์ ์๋๋ก ํ๋ค.
3. ์๋ฉด๋๋ช ์ ์ ํ์ฌ๋ถ๋ ์ฌ์ฉ์์๊ฒ ์์ ๋กญ๊ฒ ๋งก๊ธด๋ค.
์๋ํ๋ฉด, ์๋ฉด๋๋ช ์ด null๊ฐ์ธ data๋ค๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค.
4. ์๋๋ช , ์๊ตฐ๊ตฌ๋ช ๊น์ง ์ ํ์ ํ ํ์๋ ์๋ฉด๋๋ช ์ ์ ํํ ํ ๊ฒ์์ด๋ฅผ ์ ๋ ฅ or ๊ทธ๋ฅ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํ์ฌ ์กฐํํ ์ ์๋๋ก ๊ตฌํํ๋ค.
5. ๋ชจ๋ ๊ฒ์ ๊ฒฐ๊ณผ ๋ฐ ์นดํ ๊ณ ๋ฆฌ๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
6. ์๋๋ช , ์๊ตฐ๊ตฌ๋ช , ์๋ฉด๋๋ช ๊น์ง ์ ํํ์ ๋๋, ๋ฐ๋ก ๊ฒ์ ๋ฒํผ์ ๋๋ฅด์ง ์์๋ filtering๋ ํด๋น ์ ๋ณด๋ฅผ ์ถ๋ ฅํ ์ ์๋๋ก ํ๋ค.
โ ๊ตฌํ
โฌ๏ธ db ์ ๋ณด๊ฐ ๋ค์ด์๋ php ํ์ผ -> ๊ฐ ์ ๋ณด๋ค์ ์์ ์ด ์ค์ ํ ๊ฐ์ ๋ง์ถฐ์ ์จ์ฃผ๋ฉด ๋๋ค! โฌ๏ธ
<?php /* +-------------------------------------------------------------------------+ | Copyright (C) 2022 ye5ni | +-------------------------------------------------------------------------+ ํ๋ก์ ํธ : 2022 ๊ฑด๋ฌผ DB ํ๋ก์ ํธ ์ ์ฑ ์: ๊น์์ ํ๋ก๊ทธ๋จ๋ช
: ๋๋ก๋ช
์ฃผ์ ๊ฒ์ ํ์ด์ง ๋ชจ ๋ ๋ช
: roadCode.php ์ ์ฑ ์ผ: 2022.05.18 ์ต์ข
์์ ์ผ: ์ต์ข
์์ ์: ์์ ์ด๋ ฅ: */ $dbServer = " "; $dbUser = " "; $dbPassword = " "; $dbSid = " "; //putenv("NLS_LANG=KOREAN_KOREA.KO16MlsSWIN949"); putenv("NLS_LANG=KOREAN_KOREA.UTF8"); putenv("NLS_LANG=KOREAN_KOREA.AL32UTF8"); $conn = oci_connect ( $dbUser, $dbPassword, "$dbServer/$dbSid" ); if (!$conn) { $e = oci_error (); trigger_error ( htmlentities ( $e ['message'], ENT_QUOTES ), E_USER_ERROR ); } function getConnection() { global $dbServer, $dbUser, $dbPassword, $dbSid; $conn = oci_connect ( $dbUser, $dbPassword, "$dbServer/$dbSid" ); if (! $conn) { $e = oci_error (); trigger_error ( htmlentities ( $e ['message'], ENT_QUOTES ), E_USER_ERROR ); } return $conn; } function runParse($query){ global $conn; $stid = oci_parse($conn, $query); if (!$stid) { $e = oci_error($conn); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } return $stid; } function oparse($query){ global $conn; $stid = oci_parse($conn, $query); if (!$stid) { $e = oci_error($conn); trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR); } return $stid; } function checkConnection() { global $conn; if ($conn) { return true; } else { return false; } } function closeConnection(){ global $conn; oci_close($conn); } ?>
โฌ๏ธ ์ค์ ๋๋ก๋ช ์ฃผ์๋ฅผ ๊ฒ์ํ ์ ์๋ ํ์ด์ง์ ์ฝ๋ โฌ๏ธ
<?php /* +-------------------------------------------------------------------------+ | Copyright (C) 2022 ye5ni | +-------------------------------------------------------------------------+ ํ๋ก์ ํธ : 2022 ๊ฑด๋ฌผ DB ํ๋ก์ ํธ ์ ์ฑ ์: ๊น์์ ํ๋ก๊ทธ๋จ๋ช
: ๋๋ก๋ช
์ฃผ์ ๊ฒ์ ํ์ด์ง ๋ชจ ๋ ๋ช
: roadCode.php ์ ์ฑ ์ผ: 2022.05.18 ์ต์ข
์์ ์ผ: ์ต์ข
์์ ์: ์์ ์ด๋ ฅ: */ //include_once("/var/www/html/juso/cfg/config.php"); include_once("/var/www/html/juso/cfg/db.php"); // ์์ db ์ ๋ณด๊ฐ ๋ด๊ธด ํ์ผ์ด ์์นํ ๊ฒฝ๋ก ?> <html> <head> <title>๋๋ก๋ช
์ฃผ์ ๊ฒ์ํ๊ธฐ</title> </head> <body> <br/> <table width="750"> <tr> <th><h2>๋๋ก๋ช
์ฃผ์ ๊ฒ์ํ๊ธฐ</h2> </th> </tr> </table> <table width="750"> <form id="frmRoadCode" name="frmRoadCode" action="roadCode.php" method="POST"> <tr> <td> <hr><br> <table style="border: 1px dashed black; border-collapse: collapse;"> <td style="border:1px dashed black; padding:10px;"> <!-- * SIDO *--> <?php // ์๋๋ช
์ฟผ๋ฆฌ $query = "SELECT DISTINCT(sido) AS sido, SUBSTR(scd, 1, 2) AS sdid FROM road_code ORDER BY sdid, sido"; $stid = oparse($query); oci_execute($stid) ; // ์๋ ID ๊ฐ ์ ์ฅ if(isset($_POST['sidoID'])){ $sdid = $_POST['sidoID']; } ?> <select id="sidoID" name="sidoID" width="10%" onchange="frmRoadCode.submit()"> <option value="-1">์๋๋ช
</option> // ์๋ ID๋ก ๊ฐ์ ๋ถ๋ฌ์ค๊ธฐ <?php while($row = oci_fetch_assoc($stid)){ ?> <option value="<?php echo $row['SDID'] ?>" <?php if($sdid == $row['SDID']) echo "selected='selected'"; ?>> <?php echo $row['SIDO'] ?> </option> <?php } ?> </select> </td> <!-- * SIGUNGU *--> <td style="border:1px dashed black; padding:10px;"> <?php // ์๊ตฐ๊ตฌ๋ช
์ฟผ๋ฆฌ $query = "SELECT DISTINCT(gugun) as gugun, scd FROM road_code WHERE scd LIKE '$sdid%' ORDER BY gugun"; $stid = oparse($query); oci_execute($stid) ; // ์๊ตฐ๊ตฌ ID ๊ฐ ์ ์ฅ if(isset($_POST['gugunID'])){ $sgid = $_POST['gugunID']; } ?> <select id="gugunID" name="gugunID" width="10%" onchange="frmRoadCode.submit()"> <option value="-1">์๊ตฐ๊ตฌ๋ช
</option> // ์๊ตฐ๊ตฌ๋ช
select Box ์ถ๋ ฅ <?php while($row = oci_fetch_assoc($stid)){ ?> <option value="<?php echo $row['SCD'] ?>" <?php if($sgid == $row['SCD']) echo "selected='selected'"; ?>> <?php echo $row['GUGUN'] ?> </option> <?php } ?> </select> </td> <!-- * DONG *--> <td style="border:1px dashed black; padding:10px;"> <?php // ์๋ฉด๋๋ช
์ฟผ๋ฆฌ(์กด์ฌํ ๋) $query = "SELECT DISTINCT(dong) as dong, dongcd, scd FROM road_code WHERE scd='$sgid' AND dong IS NOT NULL ORDER BY dong"; $stid = oparse($query); oci_execute($stid) ; // ์๋ฉด๋ ID ๊ฐ ์ ์ฅ if(isset($_POST['dongID'])){ $did = $_POST['dongID']; } ?> <select id="dongID" name="dongID" width="10%" onchange="frmRoadCode.submit()"> <option value="-1">์๋ฉด๋๋ช
</option> // ์๋ฉด๋๋ช
select Box ์ถ๋ ฅ <?php while($row = oci_fetch_assoc($stid)){ ?> <option value="<?php echo $row['DONGCD'] ?>" <?php if($did == $row['DONGCD']) echo "selected='selected'"; ?>> <?php echo $row['DONG'] ?> </option> <?php } ?> </select> </td> <!-- * DORO *--> <td style="border:1px dashed black; padding:10px;"> <input type="text" name="doroID" id="doroID" size="20"> </td> <td> // ๋๋ก๋ช
์ฃผ์ ๊ฒ์ <?php // ๋๋ก๋ช
ID ๊ฐ ์ ์ฅ if(isset($_POST['doroID'])){ $doro = $_POST['doroID']; } // ์๋ฉด๋๋ช
์ ๊ฐ์ ๋ฃ์์ ๋์ ์ฟผ๋ฆฌ(๊ฒ์ ๋ฐ์ค์๋ ์
๋ ฅ๋ ์ํ-๋๋ก๋ช
) if($did != -1) { $query = "SELECT road, rno FROM road_code WHERE scd='$sgid' AND dongcd='$did' AND road LIKE '%$doro%' ORDER BY road"; } // ๊ฒ์๋ฐ์ค์ ๊ฐ์ ๋ฃ์ง ์๊ณ '๊ฒ์' ๋ฒํผ์ ๋๋ ์ ๋์ ์ฟผ๋ฆฌ else if ($doro == null) { $query = "SELECT distinct(road) FROM road_code WHERE scd='$sgid' and dongcd='$did' ORDER BY road"; } // ์๋ฉด๋๋ช
์ ๊ฐ์ด ์กด์ฌํ์ง ์์ ๋์ ์ฟผ๋ฆฌ(๊ฒ์ ๋ฐ์ค์๋ ์
๋ ฅ๋ ์ํ-๋๋ก๋ช
) else if ($did == -1) { $query = "SELECT distinct (road) FROM road_code WHERE scd='$sgid' and road LIKE '%$doro%' ORDER BY road"; } $stid = oparse($query); oci_execute($stid) ; ?> // ๊ฒ์ ๋ฒํผ์ ๋๋ฅธ ํ(or ๋๋ฆ๊ณผ ๋์์) ์ ์ฉ ๋๋ ๊ฒฐ๊ณผ <input type="submit" value="๊ฒ ์" onchange="frmRoadCode.submit()"> <?php if ($doro!=null){ while($row = oci_fetch_assoc($stid)){ ?> <tr><td> <?php echo $row['ROAD'] ?> </td></tr> <?php } } else { while($row = oci_fetch_assoc($stid)) { ?> <tr><td> <?php echo $row['ROAD']; ?> </td></tr> <?php } } ?> </td> </form> </table> <br/> <br/> <br/> <table> <a href="/juso/juso.html" alt='๋ฉ์ธ'>๋ฉ์ธ์ผ๋ก ์ด๋</a> </table> </td> </tr> </form> </body> <?PHP //echo "sdid:". $sdid; //echo "sgid:". $sgid; //echo "did:". $did; //echo "doro:". $doro; //?> </html>
โ ๊ฒฐ๊ณผ ๋ฐ ํ ์คํธ

โ๏ธ ์ด๊ธฐ ํ๋ฉด

โ๏ธ ์ฌ์ฉ์๊ฐ ์๋๋ช ๋ฐ ์๊ตฐ๊ตฌ๋ช , ์๋ฉด๋๋ช ์ ์ ํํ ์ ์๋๋ก dropdown ํ์์ selectBox ์ฌ์ฉ
โ๏ธ ์ฌ์ฉ์๊ฐ ์ ํํ ์๋๋ช ์ ์ํ๋ ์๊ตฐ๊ตฌ๋ช ๋ง ์ถ๋ ฅ
โ๏ธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ

โ๏ธ ์๋ฉด๋๋ช ์ ์ ํ์ฌ๋ถ๋ ์ฌ์ฉ์์๊ฒ ์์ ๋กญ๊ฒ ๋งก๊น์ผ๋ก์จ, ์ ํํ์ง ์๊ณ ๋ ๊ฒ์์ด๋ฅผ ์ ๋ ฅํด์ ์กฐํํ ์ ์๋๋ก ๊ตฌํ
โ๏ธ ํด๋นํ๋ ๊ธ์(๊ฒ์์ด)๊ฐ ํฌํจ๋์ด ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅ

โ๏ธ ์๋๋ช , ์๊ตฐ๊ตฌ๋ช , ์๋ฉด๋๋ช ์์ผ๋ก ์ ํํ ๊ฐ์ ๋ง์ถฐ์ ๊ฐ ์์ ์นดํ ๊ณ ๋ฆฌ์ ํฌํจ๋๋ ํญ๋ชฉ๋ง ์ถ๋ ฅ๋๋๋ก ๊ตฌํ
โ๏ธ ์๋ฉด๋๋ช ๊น์ง๋ง ์ ํํด๋ ํด๋นํ๋ data ์ถ๋ ฅ

โ๏ธ ์๋๋ช , ์๊ตฐ๊ตฌ๋ช , ์๋ฉด๋๋ช ์ ๋ชจ๋ ์ ํํ ํ, ์์ ์ด ์ํ๋ ํน์ ๊ฐ๋ง ๊ฒ์ํด์ ์ถ๋ ฅํ ์ ์๋๋ก ๊ตฌํ
* ๋ฌด๋จ ๋ณต์ ๊ธ์ง *
ํ์ฉํ๊ณ ์ถ์ผ์๋ฉด ๋๊ธ ๋ฐ ์ถ์ฒ ํ๊ธฐ ๋ถํ๋๋ฆฝ๋๋ค:)