본문 바로가기
PHP/PHP and AJAX

PHP AJAX 데이터베이스 연동

by 진격의 파파 2013. 7. 19.
반응형

 

이번장에서는 PHP 에서 AJAX 를 이용한 Mysql 데이터베이스 연동에 대해서 살펴보겠습니다.  

 

AJAX 와 데이터베이스 연동은 실무에서도 정말 중요한 내용이고 별도의 다른 페이지 로딩없이 한 페이지 내에서 데이터베이스 내용을 불러들여 처리할 수 있으니 매우 유용한 기능이라 생각합니다.

 

데이터베이스 연동이니 우선 테이블을 하나 생성하겠습니다.

테이블 이름 : persons

 user_name

 age

 home

 job

 park

 33

 cheongju

 programmer

 kim

 35

 seoul

 police

 song

 42

 incheon

 webmaster

 lee

 36

 daegu

 teacher

// 테이블의 내용은 위처럼 되어 있다고 가정합니다. 이전 포스팅에서 테이블 만드는 방법에 대해서 설명이 되어있으니 혹시 테이블 생성에 대해서 모르는 분들은 이전 포스팅을 참조하시면 되겠습니다.

 

ajax_form.php 파일과 ajax.php 파일을 생성합니다.

ajax_form.php 파일은 내용을 보여주는 페이지 이며,

ajax.php  파일은 데이터베이스와 연동하여 ajax_form.php 파일로 전송시키는 역할을 합니다.

 

------ ajax_form.php ----

<html>
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 <script>
 function showUser(str)
 {
 if (str=="")
   {
   document.getElementById("txtHint").innerHTML="";
   return;
   }
 if (window.XMLHttpRequest)  {
 

// code for IE7+, Firefox, Chrome, Opera, Safari
   xmlhttp=new XMLHttpRequest();
 }
 else { 
 

// code for IE6, IE5
   xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 xmlhttp.onreadystatechange=function()  {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)  {
     document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
     }
   }
 xmlhttp.open("GET","ajax.php?q="+str,true);
 xmlhttp.send();
 }
 </script>
 </head>
 <body>
 

 <form>
 <select name="users" onchange="showUser(this.value)">
 <option value="">Select a person:</option>
 <option value="park">park</option>
 <option value="kim">kim</option>
 <option value="song">song</option>
 <option value="lee">lee</option>
 </select>
 </form>
 <br>
 <div id="txtHint"><b>사람들의 정보를 이곳에 보여줌.</b></div>

 </body>
 </html>

 

 

------ ajax.php ------

<?php
 $q=$_GET["q"];

 $con = mysqli_connect('localhost','user_id','user_pwd','test_db');
 if (!$con)  {
   die('Could not connect: ' . mysqli_error($con));
 }


 $sql = "SELECT * FROM persons WHERE user_name = '".$q."'";
 $result = mysqli_query($con,$sql);

 echo "<table border='1'>
 <tr>
 <th>username</th>
 <th>Age</th>
 <th>Home</th>
 <th>Job</th>
 </tr>";

 while($row = mysqli_fetch_array($result))
   {
   echo "<tr>";
   echo "<td>" . $row['user_name'] . "</td>";
   echo "<td>" . $row['age'] . "</td>";
   echo "<td>" . $row['home'] . "</td>";
   echo "<td>" . $row['job'] . "</td>";
   echo "</tr>";
   }
 echo "</table>";

 mysqli_close($con);
 ?>

// 두 개의 파일이 서로 연동되어 내용을 선택하면 어떠한 페이지 로딩없이 바로바로 데이터베이스 내용이 나타나는것을 확인할 수 있습니다. AJAX는 이처럼 사용자인터페이스에 매우 유용한 기능을 제공한다 보면 됩니다. 더 자세히 알아두면 실무에서 많은 도움이 될거라 믿어의심치 않습니다.

 

혹시 오류, 오타 있으면 쪽지, 댓글 부탁드립니다.

반응형

'PHP > PHP and AJAX ' 카테고리의 다른 글

PHP AJAX RSS Reader 구문  (0) 2013.07.24
PHP AJAX Live Search 구문  (0) 2013.07.23
PHP AJAX XML 연동  (0) 2013.07.22
PHP AJAX 구문  (0) 2013.07.18