Infra & Security Eng/Programming
[PHP] oci_fetch_all의 2차원 배열 구조 해석 하기
엔지니어 E
2026. 3. 24. 17:50
반응형

| <?php echo("<a href=./st_in.html>자료 입력하기</a><hr>"); * 화면에 "자료 입력하기" 링크를 만들고 가로줄(<hr>)을 긋는다 require('conn.php'); * DB 접속 정보가 담긴 파일을 불러온다 $sql="select sno, sname, sex, major, syear, to_char(avr,'0.00') avr from student order by sno"; * 실행할 SQL 문장을 준비한다 (oder by sno: 학번순으로 정렬) $result=oci_parse($conn,$sql); * SQL 문장을 오라클이 이해할 수 있게 분석(parse)함 oci_execute($result); $row_num=oci_fetch_all($result, $row); * 데이터를 통째로 뽑아서 $row라는 2차원 배열 주머니에 넣고, $row_num에는 "전체 데이터가 몇 줄인지" 숫자가 저장됨 oci_free_statement($result); * DB 사용이 끝났으므로 메모리를 비우고 접속을 끊음 oci_close($conn); echo("Row의 개수는 $row_num 입니다.<br>"); echo("<table border=1>"); * 표(Table)를 시작 for($i=0; $i<$row_num; $i++) { * ★핵심: 반복문 (for) - 여기서 데이터를 한 줄씩 표로만든다 * $i가 0부터 시작해서 전체 줄 수($row_num)보다 작을 때까지 하나씩 늘어나며 반복함 * 표의 가로 한 줄(Row)을 시작함 echo("<td> {$row['SNO'][$i]} </td>"); // 첫 번째 칸: 학번 echo("<td> {$row['SNAME'][$i]} </td>"); // 두 번째 칸: 이름 echo("<td> {$row['SEX'][$i]} </td>"); // 세 번째 칸: 성별 echo("<td> {$row['SYEAR'][$i]} </td>"); // 네 번째 칸: 학년 echo("<td> {$row['MAJOR'][$i]} </td>"); // 다섯 번째 칸: 학과 echo("<td> {$row['AVR'][$i]} </td>"); // 여섯 번째 칸: 평점 * 주머니($row) 안에 있는 '학번(SNO 등)' 칸에서 '$i번째' 데이터를 꺼내라"는 뜻임 echo("</tr>") } echo("</table>"); ?> |
| ★ 참고 ( for($i=0; $i<$row_num; $i++) ) - $i<$row_num인 이유 컴퓨터는 0부터 세지만 row_num(번호=인덱스)는 말그대로 데이터의 총 개수이기 때문에 3이 된다 그래서 1부터 세기 때문에 $i 보다 작아야 한다 |