html 與數(shù)據(jù)庫(kù)查詢相輔相成,賦能構(gòu)建交互式且數(shù)據(jù)驅(qū)動(dòng)的 web 應(yīng)用程序:html 表單處理:收集用戶輸入并從數(shù)據(jù)庫(kù)檢索數(shù)據(jù),響應(yīng)用戶操作。ajax 數(shù)據(jù)請(qǐng)求:異步發(fā)送數(shù)據(jù)庫(kù)查詢,不刷新頁(yè)面,更新數(shù)據(jù)。數(shù)據(jù)庫(kù)驅(qū)動(dòng)的搜索功能:用戶輸入查詢,應(yīng)用程序使用 sql 查詢數(shù)據(jù)庫(kù)返回相關(guān)結(jié)果。
HTML 與數(shù)據(jù)庫(kù)查詢的協(xié)同效應(yīng)
引言
HTML 和數(shù)據(jù)庫(kù)查詢相輔相成,幫助我們構(gòu)建交互式且數(shù)據(jù)驅(qū)動(dòng)的 Web 應(yīng)用程序。本文將探討如何將 HTML 與數(shù)據(jù)庫(kù)查詢結(jié)合起來(lái),并提供一些實(shí)戰(zhàn)案例。
1. HTML 表單處理
HTML 表單可用于收集用戶輸入。我們可以使用 PHP、Python 或 Node.js 等后端語(yǔ)言處理這些表單,并從數(shù)據(jù)庫(kù)中檢索所需數(shù)據(jù)進(jìn)行響應(yīng)。
代碼示例:
<!-- HTML 表單 --> <form action="process.php" method="post"> <input type="text" name="name" placeholder="姓名"> <input type="email" name="email" placeholder="電子郵箱"> <input type="submit" value="提交"> </form> <!-- PHP 表單處理 --> <?php // 從表單中獲取數(shù)據(jù) $name = $_POST['name']; $email = $_POST['email']; // 連接數(shù)據(jù)庫(kù) $conn = new <a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>i('localhost', 'root', '', 'mydb'); // 準(zhǔn)備 SQL 查詢 $stmt = $conn->prepare("SELECT * FROM users WHERE name=?"); $stmt->bind_param('s', $name); // 執(zhí)行查詢并獲取結(jié)果 $stmt->execute(); $result = $stmt->get_result(); // 遍歷結(jié)果并顯示用戶數(shù)據(jù) while ($row = $result->fetch_assoc()) { echo "姓名:" . $row['name'] . "<br>"; echo "電子郵箱:" . $row['email'] . "<br>"; } ?>
登錄后復(fù)制
2. AJAX 數(shù)據(jù)請(qǐng)求
AJAX (異步 JavaScript 和 XML) 可用于向數(shù)據(jù)庫(kù)發(fā)送查詢,而不刷新整個(gè)頁(yè)面。這允許我們?cè)诓恢袛嘤脩趔w驗(yàn)的情況下更新數(shù)據(jù)。
代碼示例:
<!-- HTML 頁(yè)面 --> <div id="data"></div> <!-- JavaScript AJAX 調(diào)用 --> <script> // 創(chuàng)建 XMLHttpRequest 對(duì)象 var xhr = new XMLHttpRequest(); // 設(shè)置請(qǐng)求方法和 URL xhr.open('GET', 'get_data.php'); // 發(fā)送請(qǐng)求 xhr.send(); // 處理響應(yīng) xhr.onload = function() { if (xhr.status == 200) { var data = JSON.parse(xhr.responseText); // 使用接收到的數(shù)據(jù)更新 HTML 元素 document.getElementById('data').innerHTML = data.message; } }; </script> <!-- PHP 獲取數(shù)據(jù) --> <?php // 連接數(shù)據(jù)庫(kù) $conn = new mysqli('localhost', 'root', '', 'mydb'); // 準(zhǔn)備 SQL 查詢 $stmt = $conn->prepare("SELECT * FROM messages"); // 執(zhí)行查詢并獲取結(jié)果 $stmt->execute(); $result = $stmt->get_result(); // 將結(jié)果編碼為 JSON 并返回 $messages = []; while ($row = $result->fetch_assoc()) { $messages[] = $row; } echo json_encode(['message' => $messages]); ?>
登錄后復(fù)制
3. 數(shù)據(jù)庫(kù)驅(qū)動(dòng)的搜索功能
我們可以結(jié)合 HTML 和數(shù)據(jù)庫(kù)查詢構(gòu)建數(shù)據(jù)庫(kù)驅(qū)動(dòng)的搜索功能。用戶輸入查詢,應(yīng)用程序使用 SQL 查詢數(shù)據(jù)庫(kù)并返回相關(guān)結(jié)果。
代碼示例:
<!-- HTML 搜索欄 --> <input type="text" id="search"> <!-- JavaScript 搜索處理 --> <script> // 獲取搜索欄輸入 var searchTerm = document.getElementById('search').value; // 使用 AJAX 發(fā)送查詢 var xhr = new XMLHttpRequest(); xhr.open('GET', 'search.php?q=' + searchTerm); xhr.send(); // 處理響應(yīng) xhr.onload = function() { if (xhr.status == 200) { var results = JSON.parse(xhr.responseText); // 使用接收到的結(jié)果更新 HTML 元素 // ... } }; </script> <!-- PHP 搜索 --> <?php // 獲取搜索查詢 $q = $_GET['q']; // 連接數(shù)據(jù)庫(kù) $conn = new mysqli('localhost', 'root', '', 'mydb'); // 準(zhǔn)備 SQL 查詢 $stmt = $conn->prepare("SELECT * FROM products WHERE name LIKE ?"); $stmt->bind_param('s', $q); // 執(zhí)行查詢并獲取結(jié)果 $stmt->execute(); $result = $stmt->get_result(); // 將結(jié)果編碼為 JSON 并返回 $products = []; while ($row = $result->fetch_assoc()) { $products[] = $row; } echo json_encode(['results' => $products]); ?>
登錄后復(fù)制
結(jié)論
HTML 與數(shù)據(jù)庫(kù)查詢共同作用,提供構(gòu)建交互式且數(shù)據(jù)驅(qū)動(dòng)的 Web 應(yīng)用程序的強(qiáng)大工具。通過(guò)整合這些技術(shù),我們可以創(chuàng)建動(dòng)態(tài)和交互式頁(yè)面,這些頁(yè)面可以從數(shù)據(jù)庫(kù)中獲取、處理和顯示數(shù)據(jù)。