컴퓨터/APM

MySQL : php와 DB의 연결 2

하늘치 2008. 1. 17. 17:10
반응형

1. php_exam 이라는 DB에 member 라는 테이블 생성
==================================================================

mysql> show databases;
+----------+
| Database |
+----------+
| company  |
| mysql    |
| onepiece |
| php_exam |
+----------+
4 rows in set (0.00 sec)


mysql> use php_exam;
Database changed


mysql> show tables;
+--------------------+
| Tables_in_php_exam |
+--------------------+
| php_tbl            |
+--------------------+
1 row in set (0.00 sec)


mysql> create table member(name varchar(10), phone varchar(15), sex varchar(4), address varchar(50), age varchar(4));
Query OK, 0 rows affected (0.08 sec)


mysql> show tables;
+--------------------+
| Tables_in_php_exam |
+--------------------+
| member             |
| php_tbl            |
+--------------------+
2 rows in set (0.00 sec)





2. 생성된 테이블에 내용을 입력하기 위한 php 페이지 작성.
==================================================================

1) 회원등록과 회원검색을 위한 페이지를 만든다.
-> m_main.php

2) 웹상에서 입력할 수 있게 하는 form 양식의 페이지를 만들고,
-> m_form.php

3) 먼저 MySQL에 접속, 그리고 원하는 DB에 접속할 수 있게 하는 파일을 다른 어느 페이지에서든 include 할 수 있게끔 따로 만들어 놓은 후, 
-> dbinfo.inc

4) 폼에서 입력한 내용을 데이타베이스(DB)에 저장(insert)시키는 페이지를 만든다. 여기에 dbinfo.inc를 include 시킨다.
-> m_insert.php


1)m_main.php
<HTML>
<HEAD></HEAD>

<BODY>
<h3>간단한 회원 등록 및 검색 서비스</h3>
1. <a href="m_regist.php">회원 등록</a><br>
2. <a href="m_search.php">회원 검색</a><br>
</BODY>

</HTML>


2)m_form.php
<form name=f1 method=post action=m_insert.php>

<table>
    <tr>
        <td>회원이름 : </td>
        <td><input type=text name=name></td>
    </tr>

    <tr>
        <td>전화번호 : </td>
        <td><input type=text name=phone></td>
    </tr>

    <tr>
        <td>남녀성별 : </td>
        <td><input type=radio name=sex value=male>남자
              <input type=radio name=sex value=female>여자</td>
    </tr>

    <tr>
        <td>주소 : </td>
        <td><select name=address1 size=1>
                <option value="서울">서울</option>
                <option value="경기">경기</option>
                <option value="강원">강원</option>
                <option value="충북">충북</option>
                <option value="충남">충남</option>
                <option value="경북">경북</option>
                <option value="경남">경남</option>
                <option value="전남">전남</option>
                <option value="전북">전북</option>
                <option value="제주">제주</option>
            </select>
            <input type=text size=50 name=address2></td>
    </tr>

    <tr>
        <td>나이 : </td>
        <td><input type=text name=age></td>
    </tr>

    <tr>
        <td colspan=2>
            <input type=submit value=입력>
            <input type=reset value=취소>
        </td>
    </tr>

</table>
</form>


3)dbinfo.inc
<?php

$host="localhost";
$user="root";
$password="apmsetup";

$conn=mysql_connect($host, $user, $password);        //mysql 연결 설정
mysql_select_db("php_exam", $conn);                        //DB에 접속


/*
연결 확인
if($conn) echo "db연결";
else echo "db연결 실패";
*/

?>


4)m_insert.php
<?php

include 'dbinfo.inc';            //설정파일 불러오기

if($sex==male)                   //성별 결정
    $sex="남자";
else if($sex==female)
    $sex="여자";

$address=$address1. " " .$address2;    //주소 완성


/* insert 구문 */
$sql="insert into member values('$name', '$phone', '$sex', '$address', '$age')";
mysql_query($sql, $conn);        //sql 질의 수행.

mysql_close($conn);                //db 연결 종료. ram 에서 삭제.

echo "등록 완료. 축하드립니다. <br>";
echo ("<a href='m_main.php'>초기화면으로</a>");

?>


*** 지금까지의 결과... ***
사용자 삽입 이미지







사용자 삽입 이미지





5)m_list.php

<?php

include 'dbinfo.inc';  //db연결부분.

$sql="select * from member order by name"; //선택 질의
$sql_result=mysql_query($sql, $conn);  //질의 수행.

$count=mysql_num_rows($sql_result);  //행의 개수


//레코드 출력부분.
echo ("<table border=1 width=500>
 <tr>
  <td>회원명</td>
  <td>전화번호</td>
  <td>성별</td>
  <td>주소</td>
  <td>나이</td>
     </tr>");  
 


for($i=0; $i<$count; $i++)
{


/*  //첫번째 방법

 $name=mysql_result($sql_result, $i, name);
 $phone=mysql_result($sql_result, $i, phone);
 $sex=mysql_result($sql_result, $i, sex);
 $address=mysql_result($sql_result, $i, address);
 $age=mysql_result($sql_result, $i, age);

echo ("<tr>
    <td>$name</td>
    <td>$phone</td>
    <td>$sex</td>
    <td>$address</td>
    <td>$age</td>
 </tr>");  // 한 레코드씩 찍어주는 부분.

*/



/*  //두번째 방법 */

$result_array=mysql_fetch_array($sql_result);
echo("<tr>
   <td>$result_array[name]</td>
   <td>$result_array[phone]</td>
   <td>$result_array[sex]</td>
   <td>$result_array[address]</td>
   <td>$result_array[age]</td>
  </tr>");  


}

echo ("</table>");
echo ("<br><a href='m_main.php'>초기화면으로</a>");


?>



*** 지금까지의 결과보기. ***
* 웹에서 등록해보기



* 등록한 후, 입력.
사용자 삽입 이미지


* 입력한 내용을 확인할 수 있다.
사용자 삽입 이미지


* 입력한 내용을 MySQL에서도 확인.


반응형