본문 바로가기

PHP/PHP Programming

[PHP] API 함수를 이용해 데이터 읽기 : ② mysql_fetch_row( ) 함수를 이용한 레코드 가져오기

반응형

■ 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( ) 함수를 사용해 데이터베이스와의 접속을 종료한다.

반응형