이번장에서는 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 |