■ mysql_fetch_row( ) 함수를 이용한 레코드 가져오기
이번에는 서울에 사는 사람의 레코드만 membership 테이블에서 가져와서 나이순으로 출력해보자. 아래 mysql_fetch_row.php 예제를 통해서 mysql_fetch_row( )와 mysql_num_fields( )를 알아보자.
mysql_fetch_row.php |
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <? $connect = mysql_connect("localhost", "wicked", "1q2w3e"); $db_con = mysql_select_db("wicked_db", $connect); $sql = "select * from membership where address like '%서울%' order by age;"; $result = mysql_query($sql,$connect); $fields=mysql_num_fields($result); $number = 1; ?> <h2>▶ mysql_fetch_array( )를 이용한 데이터 읽기</h2> <table width = "800" border = "1" cellpadding = "10"> <tr align = "center"> <td bgcolor = "#cccccc">일련번호</td> <td bgcolor = "#cccccc">아이디</td> <td bgcolor = "#cccccc">이름</td> <td bgcolor = "#cccccc">우편번호</td> <td bgcolor = "#cccccc">주소</td> <td bgcolor = "#cccccc">전화번호</td> <td bgcolor = "#cccccc">나이</td> </tr> <? while($row = mysql_fetch_row($result)) { echo "<tr>"; echo "<td>$number</td>"; for($i = 0; $i < $fields; $i++) { echo "<td>$row[$i]</td>"; } echo "</tr>"; $number++; } mysql_close(); ?> |
출력화면 |
① MySQL 접속 및 데이터베이스 선택
3, 4행 : 함수를 이용해 wicked 계정으로 접속하고 wicked_db 데이터베이스를 선택한다.
② SQL 명령 실행
6, 7행 : 조건에 맞는 레코드를 검색해 정렬하는 명령을 저장하고, mysql_query( ) 함수로 명령을 실행시킨 결과를 $result에 저장한다. 6행에서 입력한 명령은 address 필드에서 "서울"을 포함하는 레코드를 찾아서 age 필드를 기준으로 오름차순으로 정렬하라는 의미다.
③ 필드의 개수 구하기
9행 : mysql_num_fields( ) 함수를 이용하여 $result에 저장된 결과 즉, membership 테이블의 필드 개수를 구한다. 필드의 개수는 여섯 개로, 변수 $fileds값은 6이다.
④ 표의 행 제목 출력
15 ~ 23행 : 각 필드에 해당하는 표의 행 제목을 화면에 출력한다.
⑤ 일련번호 출력
11행 : 일련번호를 나타내는 변수 $number를 1로 초기화한다.
28행 : 한 행을 나타내는 <td> 태그 안에 $number를 입력해 일련번호를 표시한다.
37행 : $number값을 1 증가시켜 다음 레코드의 일련번호를 출력할때 사용한다.
⑥ membership 테이블의 데이터 출력
25행 while문으로 mysql_fetch_row($result) 함수를 한 번 실행할 때마다, $result에서 하나의 레코드를 가져와 배열 변수 $row에 저장한다. while문은 더 이상 가져올 레코드가 없을 때까지 반복되고, 실행 결과는 위 출력결과와 같다.
30 ~ 33행 : $fields값이 6이므로 $i가 0부터 5까지 변하면서, 32행에서 각 필드에 해당되는 값이 출력된다. 32행의 배열 변수에 대응되는 필드값을 정리하면 아래와 같다.
※ 배열 변수에 대응되는 membership 테이블의 필드
배열 변수 $row값 |
해당 필드 |
배열 변수 $row값 |
해당필드 |
$row[0] |
id |
$row[3] |
address |
$row[1] |
name |
$row[4] |
tel |
$row[2] |
post_num |
$row[5] |
age |
⑦ 데이터베이스 접속 종료
40행 mysql_close( ) 함수를 사용해 데이터베이스와의 접속을 종료한다.
'PHP > PHP Programming' 카테고리의 다른 글
[PHP] 성적 관리 프로그램 제작 (3) | 2014.12.23 |
---|---|
[PHP] API 함수를 이용해 데이터 읽기 : ③ mysql_result( ) 함수를 이용한 레코드 가져오기 (0) | 2014.12.19 |
[PHP] API 함수를 이용해 데이터 읽기 : ① mysql_fetch_array( ) 함수를 이용한 레코드 가져오기 (0) | 2014.12.19 |
[PHP] API 함수를 이용해 데이터 읽기 : 데이터베이스 테이블 생성과 레코드 삽입 (0) | 2014.12.19 |
[PHP] MySQL을 지원하는 PHP API 함수 (0) | 2014.12.18 |