PHP和Ajax是非常常用的web開發(fā)技術(shù)。對于那些需要頻繁更新數(shù)據(jù)集,擴展或收縮信息以及從中回顯數(shù)據(jù)的項目來說,這些技術(shù)是非常有用的。在這篇文章中,我們將介紹PHP和Ajax的遍歷。我們將使用豐富的例子來解釋這些概念。
首先,在這個示例中,我們將演示如何向已知的MySQL數(shù)據(jù)庫中添加Ajax遍歷函數(shù)。考慮到這一點,讓我們通過一個簡單的示例來說明如何將代碼添加到PHP文件中:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Ajax 遍歷& MySQL 數(shù)據(jù)庫</title>
</head>
<body>
<form>
<input type="text" id="search">
<button type="button" id="searchButton">搜索</button>
</form>
<div id="resultDiv"></div>
</body>
<script>
var search = document.getElementById("search");
var searchButton = document.getElementById("searchButton");
var resultDiv = document.getElementById("resultDiv");
searchButton.onclick = function(){
var str = search.value.trim();
if(str.length==0){
alert("請輸入搜索關(guān)鍵字!");
return;
}
var xmlhttp;
if (window.XMLHttpRequest) {// IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行代碼
xmlhttp=new XMLHttpRequest();
}else{// IE6, IE5 瀏覽器執(zhí)行代碼
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
resultDiv.innerHTML=xmlhttp.responseText;
}
};
xmlhttp.open("POST","list.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("keyword="+str);
}
</script>
</html>
在上面的代碼中,我們使用了Ajax和php代碼來操作數(shù)據(jù)庫。我們使用XMLHttpRequest對象實現(xiàn)了異步查詢和數(shù)據(jù)檢索。請注意,我們還使用了一個搜索輸入框和檢索按鈕,這些都是我們的ajax遍歷的初始化部分。
接下來,我們將為您詳細介紹PHP代碼,該代碼是我們在上面的JavaScript代碼中打開的“l(fā)ist.php”。
<?php
//連接到MySQL數(shù)據(jù)庫
$con=mysqli_connect("localhost","root","","my_db");
if (mysqli_connect_errno())
{
echo "連接出錯: " . mysqli_connect_error();
}
//取得搜索關(guān)鍵字
$keyword=$_POST["keyword"];
$sql="SELECT * FROM Persons WHERE (FirstName LIKE '%".$keyword."%') OR (LastName LIKE '%".$keyword."%')";
//執(zhí)行查詢
$result=mysqli_query($con,$sql);
//顯示搜索結(jié)果
while($row=mysqli_fetch_array($result))
{
echo $row['FirstName'] . " " . $row['LastName'];
echo "<br/>";
}
mysqli_close($con);
?>
我們平衡了各種PHP代碼,允許我們執(zhí)行與MySQL數(shù)據(jù)庫的查詢,并在結(jié)果組中檢索信息。請注意,在這個代碼塊中,我們通過使用“mysqli_fetch_array”函數(shù)來處理PHP編碼,以便檢索信息并進行遍歷。對于那些經(jīng)常使用MySQL數(shù)據(jù)庫的開發(fā)人員來說,這段代碼應(yīng)該非常容易理解。
現(xiàn)在,我們需要說明的一件事是如何在JavaScript代碼中使用JSON對象來遍歷數(shù)據(jù)庫。JSON(JavaScript對象表示)是一種開放的數(shù)據(jù)格式,非常適合查詢和將數(shù)據(jù)存儲到數(shù)據(jù)庫中。因此,我們在上面的PHP代碼中使用了MySQL命令機制。但是,MySQL命令機制不太適合實時信息檢索。
<?php
//連接到MySQL數(shù)據(jù)庫
$con=mysqli_connect("localhost","root","","my_db");
if (mysqli_connect_errno())
{
echo "連接出錯: " . mysqli_connect_error();
}
//取得搜索關(guān)鍵字
$keyword=$_POST["keyword"];
$sql="SELECT * FROM Persons WHERE (FirstName LIKE '%".$keyword."%') OR (LastName LIKE '%".$keyword."%')";
//執(zhí)行查詢
$result=mysqli_query($con,$sql);
//定義結(jié)果數(shù)組
$res_arr=array();
while($row=mysqli_fetch_array($result,MYSQL_ASSOC))
{
$res_arr[]=$row;
}
$json_obj=json_encode($res_arr);
echo "$json_obj";
mysqli_close($con);
?>
在上面的PHP代碼塊中,我們使用"json_encode"函數(shù)將查詢結(jié)果轉(zhuǎn)換為JSON格式。通過實現(xiàn)這種技術(shù),我們就可以使用Ajax對象從JSON對象中檢索數(shù)據(jù),從而使事物變得高效和快速。
在這篇關(guān)于php ajax遍歷的文章中,我們介紹了使用PHP和Ajax技術(shù)來操作數(shù)據(jù)庫的基礎(chǔ)知識。我們看到了要執(zhí)行Ajax操作,需要使用JavaScript對象。但是有時,Ajax的查詢結(jié)果不是MySQL命令結(jié)果集,而是JSON的JavaScript對象。這就是為什么我們需要使用JSON技術(shù)來查詢數(shù)據(jù)庫,并遍歷結(jié)果集。