Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menanyakan data pangkalan data dengan ajax php

Bagaimana untuk menanyakan data pangkalan data dengan ajax php

PHPz
PHPzasal
2023-03-29 10:13:34638semak imbas

Dengan pembangunan Internet dan aplikasi mudah alih, permintaan untuk halaman dinamik dan data pertanyaan masa nyata semakin tinggi dan lebih tinggi. AJAX (Asynchronous JavaScript and XML) ialah teknologi yang membantu pembangun melaksanakan penghantaran data tak segerak dan kemas kini halaman dinamik. Artikel ini akan memperkenalkan cara menggunakan AJAX dan PHP untuk menanyakan data daripada pangkalan data dan membentangkannya di bahagian hadapan.

Pertama, kita perlu mencipta pangkalan data mudah untuk menyimpan data. Di sini kita mengambil jadual "pelajar" sebagai contoh, yang mengandungi tiga medan: "id", "nama" dan "umur" untuk menyimpan maklumat asas pelajar.

Selepas mewujudkan pangkalan data, kita perlu menggunakan PHP untuk menyambung ke pangkalan data dan menulis pernyataan pertanyaan. Berikut ialah kod operasi pertanyaan mudah:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

$sql = "SELECT * FROM students";
$result = $conn->query($sql);

// 处理查询结果
if ($result->num_rows > 0) {
    // 输出每行数据
    while($row = $result->fetch_assoc()) {
        echo "学生ID: " . $row["id"]. " - 姓名: " . $row["name"]. " - 年龄: " . $row["age"]. "<br>";
    }
} else {
    echo "0 结果";
}

$conn->close();
?>

Kod di atas menggunakan mysqli untuk menyambung ke pangkalan data MySQL, menjalankan operasi pertanyaan mudah dan mengeluarkan hasil pertanyaan ke halaman hadapan. Dalam pembangunan sebenar, mungkin perlu menyesuaikan kandungan yang ingin ditanya, serta operasi seperti penapisan dan pengisihan.

Seterusnya, kita perlu menggunakan teknologi AJAX untuk meminta data sebelah pelayan secara tidak segerak dan membentangkan hasilnya pada halaman hadapan. Berikut ialah kod untuk operasi pertanyaan AJAX yang mudah:

<html>
<head>
<script>
function showData(str) {
  if (str=="") {
    document.getElementById("result").innerHTML="";
    return;
  }
  var xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
      document.getElementById("result").innerHTML=this.responseText;
    }
  }
  xmlhttp.open("GET","getdata.php?q="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>

<form>
<select name="students" onchange="showData(this.value)">
<option value="">请选择一个学生:</option>
<option value="1">小明</option>
<option value="2">小红</option>
<option value="3">小刚</option>
</select> 
</form>
<br>
<div id="result"><b>这里会显示查询到的学生信息</b></div>

</body>
</html>

Kod di atas mula-mula mentakrifkan fungsi showData, yang digunakan untuk menghantar permintaan tak segerak dan menerima data yang dikembalikan oleh pelayan. Selepas memilih pelajar dalam kotak pilihan, panggil fungsi showData dan masukkan ID pelajar yang dipilih sebagai parameter.

Permintaan AJAX menggunakan objek XMLHttpRequest, menentukan alamat URL dan parameter permintaan GET melalui kaedah terbuka dan menghantar permintaan melalui kaedah hantar. Apabila permintaan mengembalikan kod status 200, pertanyaan berjaya, fungsi onreadystatechange dipanggil dan data yang dikembalikan oleh pelayan digunakan sebagai nilai atribut responseText untuk memaparkan data pada halaman hadapan. Jika permintaan gagal, kod status kegagalan dan maklumat ralat boleh diperoleh melalui atribut status.

Akhir sekali, kita perlu menulis skrip PHP yang menerima permintaan pertanyaan dan mendapatkan semula data daripada pangkalan data. Berikut ialah kod skrip PHP mudah:

<?php
$q = $_GET[&#39;q&#39;];

$con = mysqli_connect(&#39;localhost&#39;,&#39;username&#39;,&#39;password&#39;,&#39;myDB&#39;);
if (!$con) {
  die(&#39;Could not connect: &#39; . mysqli_error($con));
}

mysqli_select_db($con,"students");
$sql="SELECT * FROM students WHERE id = &#39;".$q."&#39;";

$result = mysqli_query($con,$sql);

echo "<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['name'] . "</td>";
  echo "<td>" . $row['age'] . "</td>";
  echo "</tr>";
}
echo "</table>";

mysqli_close($con);
?>

Kod di atas mula-mula membaca parameter yang diluluskan dalam permintaan AJAX, kemudian menyambung ke pangkalan data MySQL, melaksanakan pernyataan pertanyaan dengan keadaan di mana, dan menukar pertanyaan Hasilnya dikembalikan ke muka hadapan dalam bentuk jadual HTML.

Ringkasnya, gabungan AJAX dan PHP untuk menanyakan data pangkalan data dan membentangkannya pada bahagian hadapan adalah keperluan pembangunan web dinamik yang biasa Dengan menggunakan teknologi ini dengan sewajarnya, kami boleh melaksanakan halaman dinamik yang lengkap dengan pantas.

Atas ialah kandungan terperinci Bagaimana untuk menanyakan data pangkalan data dengan ajax php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn