Ajax PHP MySQL

Để minh họa rõ ràng việc truy cập thông tin từ cơ sở dữ liệu bằng AJAX dễ dàng như thế nào, chúng ta sẽ xây dựng các truy vấn MySQL một cách nhanh chóng và hiển thị kết quả trên "ajax. html". Nhưng trước khi chúng tôi tiến hành, hãy để chúng tôi làm công việc cơ bản. Tạo một bảng bằng lệnh sau

LƯU Ý - Chúng tôi cho rằng bạn có đủ đặc quyền để thực hiện các thao tác MySQL sau

CREATE TABLE 'ajax_example' [
   'name' varchar[50] NOT NULL,
   'age' int[11] NOT NULL,
   'sex' varchar[1] NOT NULL,
   'wpm' int[11] NOT NULL,
   PRIMARY KEY  ['name']
] 

Bây giờ kết xuất dữ liệu sau vào bảng này bằng cách sử dụng các câu lệnh SQL sau -

INSERT INTO 'ajax_example' VALUES ['Jerry', 120, 'm', 20];
INSERT INTO 'ajax_example' VALUES ['Regis', 75, 'm', 44];
INSERT INTO 'ajax_example' VALUES ['Frank', 45, 'm', 87];
INSERT INTO 'ajax_example' VALUES ['Jill', 22, 'f', 72];
INSERT INTO 'ajax_example' VALUES ['Tracy', 27, 'f', 0];
INSERT INTO 'ajax_example' VALUES ['Julie', 35, 'f', 90];

Tệp HTML phía máy khách

Bây giờ hãy để chúng tôi có tệp HTML phía máy khách của chúng tôi, đó là ajax. html, và nó sẽ có đoạn mã sau -

   
      

      
         Max Age:  
Max WPM:
Sex:

Your result will display here

LƯU Ý − Cách truyền biến trong Query là theo chuẩn HTTP và có dạngA

URL?variable1 = value1;&variable2 = value2;

Đoạn mã trên sẽ cung cấp cho bạn một màn hình như bên dưới -

Kết quả của bạn sẽ hiển thị ở đây trong phần này sau khi bạn đã nhập

LƯU Ý - Đây là màn hình giả

Tệp PHP phía máy chủ

Tập lệnh phía máy khách của bạn đã sẵn sàng. Bây giờ, chúng ta phải viết tập lệnh phía máy chủ, tập lệnh này sẽ tìm nạp tuổi, wpm và giới tính từ cơ sở dữ liệu và sẽ gửi lại cho máy khách. Đặt đoạn mã sau vào tệp "ajax-example. php"

";
$display_string .= "";
$display_string .= "Name";
$display_string .= "Age";
$display_string .= "Sex";
$display_string .= "WPM";
$display_string .= "";

// Insert a new row in the table for each person returned
while[$row = mysql_fetch_array[$qry_result]] {
   $display_string .= "";
   $display_string .= "$row[name]";
   $display_string .= "$row[age]";
   $display_string .= "$row[sex]";
   $display_string .= "$row[wpm]";
   $display_string .= "";
}

echo "Query: " . $query . "
"; $display_string .= ""; echo $display_string; ?>

Bây giờ hãy thử bằng cách nhập một giá trị hợp lệ [e. g. , 120] trong Max Age hoặc bất kỳ hộp nào khác rồi nhấp vào nút Truy vấn MySQL

Kết quả của bạn sẽ hiển thị ở đây trong phần này sau khi bạn đã nhập

Nếu bạn đã hoàn thành bài học này, thì bạn đã biết cách sử dụng song song MySQL, PHP, HTML và Javascript để viết các ứng dụng AJAX

Bạn có thể tạo chức năng tìm kiếm cơ sở dữ liệu trực tiếp đơn giản bằng cách sử dụng Ajax và PHP, nơi kết quả tìm kiếm sẽ được hiển thị khi bạn bắt đầu nhập một số ký tự vào hộp nhập tìm kiếm

Trong hướng dẫn này, chúng ta sẽ tạo hộp tìm kiếm trực tiếp để tìm kiếm bảng quốc gia và hiển thị kết quả không đồng bộ. Nhưng, trước hết chúng ta cần tạo bảng này

Bước 1. Tạo bảng cơ sở dữ liệu

Thực hiện truy vấn SQL sau để tạo bảng quốc gia trong cơ sở dữ liệu MySQL của bạn

CREATE TABLE countries [
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR[50] NOT NULL
];

Sau khi tạo bảng, bạn cần điền vào bảng một số dữ liệu bằng cách sử dụng câu lệnh SQL

INSERT INTO 'ajax_example' VALUES ['Jerry', 120, 'm', 20];
INSERT INTO 'ajax_example' VALUES ['Regis', 75, 'm', 44];
INSERT INTO 'ajax_example' VALUES ['Frank', 45, 'm', 87];
INSERT INTO 'ajax_example' VALUES ['Jill', 22, 'f', 72];
INSERT INTO 'ajax_example' VALUES ['Tracy', 27, 'f', 0];
INSERT INTO 'ajax_example' VALUES ['Julie', 35, 'f', 90];
0. Ngoài ra, bạn có thể tải xuống bảng các quốc gia được điền sẵn bằng cách nhấp vào nút tải xuống và nhập nó vào cơ sở dữ liệu MySQL của bạn

Vui lòng xem hướng dẫn về câu lệnh SQL

INSERT INTO 'ajax_example' VALUES ['Jerry', 120, 'm', 20];
INSERT INTO 'ajax_example' VALUES ['Regis', 75, 'm', 44];
INSERT INTO 'ajax_example' VALUES ['Frank', 45, 'm', 87];
INSERT INTO 'ajax_example' VALUES ['Jill', 22, 'f', 72];
INSERT INTO 'ajax_example' VALUES ['Tracy', 27, 'f', 0];
INSERT INTO 'ajax_example' VALUES ['Julie', 35, 'f', 90];
1 để biết thông tin chi tiết về cú pháp tạo bảng trong hệ thống cơ sở dữ liệu MySQL

Bước 2. Tạo biểu mẫu tìm kiếm

Bây giờ, hãy tạo một giao diện web đơn giản cho phép người dùng tìm kiếm trực tiếp tên của các quốc gia có sẵn trong bảng quốc gia của chúng tôi, giống như tự động hoàn thành hoặc nhập liệu

Tạo một tệp PHP có tên là "search-form. php" và đặt đoạn mã sau vào bên trong nó





PHP Live MySQL Database Search





    

Mỗi khi nội dung của đầu vào tìm kiếm bị thay đổi hoặc sự kiện keyup xảy ra trên đầu vào tìm kiếm, mã jQuery [dòng số 47 đến 67] đã gửi một yêu cầu Ajax đến "tìm kiếm phụ trợ. php" lấy các bản ghi từ bảng quốc gia liên quan đến cụm từ được tìm kiếm. Những bản ghi đó sau này sẽ được chèn vào bên trong một

bởi jQuery và hiển thị trên trình duyệt

Bước 3. Xử lý truy vấn tìm kiếm trong phụ trợ

Và đây là mã nguồn của "backend-search. php" tìm kiếm cơ sở dữ liệu dựa trên chuỗi truy vấn được gửi bởi yêu cầu Ajax và gửi kết quả trở lại trình duyệt

Ví dụ

PDO hướng đối tượng thủ tục

Tải xuống

 0]{
                // Fetch result rows as an associative array
                while[$row = mysqli_fetch_array[$result, MYSQLI_ASSOC]]{
                    echo "

" . $row["name"] . "

"; } } else{ echo "

No matches found

"; } } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error[$link]; } } // Close statement mysqli_stmt_close[$stmt]; } // close connection mysqli_close[$link]; ?>
connect_error];
}
 
if[isset[$_REQUEST["term"]]]{
    // Prepare a select statement
    $sql = "SELECT * FROM countries WHERE name LIKE ?";
    
    if[$stmt = $mysqli->prepare[$sql]]{
        // Bind variables to the prepared statement as parameters
        $stmt->bind_param["s", $param_term];
        
        // Set parameters
        $param_term = $_REQUEST["term"] . '%';
        
        // Attempt to execute the prepared statement
        if[$stmt->execute[]]{
            $result = $stmt->get_result[];
            
            // Check number of rows in the result set
            if[$result->num_rows > 0]{
                // Fetch result rows as an associative array
                while[$row = $result->fetch_array[MYSQLI_ASSOC]]{
                    echo "

" . $row["name"] . "

"; } } else{ echo "

No matches found

"; } } else{ echo "ERROR: Could not able to execute $sql. " . mysqli_error[$link]; } } // Close statement $stmt->close[]; } // Close connection $mysqli->close[]; ?>
setAttribute[PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION];
} catch[PDOException $e]{
    die["ERROR: Could not connect. " . $e->getMessage[]];
}
 
// Attempt search query execution
try{
    if[isset[$_REQUEST["term"]]]{
        // create prepared statement
        $sql = "SELECT * FROM countries WHERE name LIKE :term";
        $stmt = $pdo->prepare[$sql];
        $term = $_REQUEST["term"] . '%';
        // bind parameters to statement
        $stmt->bindParam[":term", $term];
        // execute the prepared statement
        $stmt->execute[];
        if[$stmt->rowCount[] > 0]{
            while[$row = $stmt->fetch[]]{
                echo "

" . $row["name"] . "

"; } } else{ echo "

No matches found

"; } } } catch[PDOException $e]{ die["ERROR: Could not able to execute $sql. " . $e->getMessage[]]; } // Close statement unset[$stmt]; // Close connection unset[$pdo]; ?>

Câu lệnh SQL

INSERT INTO 'ajax_example' VALUES ['Jerry', 120, 'm', 20];
INSERT INTO 'ajax_example' VALUES ['Regis', 75, 'm', 44];
INSERT INTO 'ajax_example' VALUES ['Frank', 45, 'm', 87];
INSERT INTO 'ajax_example' VALUES ['Jill', 22, 'f', 72];
INSERT INTO 'ajax_example' VALUES ['Tracy', 27, 'f', 0];
INSERT INTO 'ajax_example' VALUES ['Julie', 35, 'f', 90];
2 được sử dụng kết hợp với toán tử
INSERT INTO 'ajax_example' VALUES ['Jerry', 120, 'm', 20];
INSERT INTO 'ajax_example' VALUES ['Regis', 75, 'm', 44];
INSERT INTO 'ajax_example' VALUES ['Frank', 45, 'm', 87];
INSERT INTO 'ajax_example' VALUES ['Jill', 22, 'f', 72];
INSERT INTO 'ajax_example' VALUES ['Tracy', 27, 'f', 0];
INSERT INTO 'ajax_example' VALUES ['Julie', 35, 'f', 90];
3 [dòng số 16] để tìm các bản ghi phù hợp trong bảng cơ sở dữ liệu quốc gia. Chúng tôi đã triển khai câu lệnh đã chuẩn bị để có hiệu suất tìm kiếm tốt hơn cũng như để ngăn chặn cuộc tấn công SQL injection

Ghi chú. Luôn lọc và xác thực đầu vào của người dùng trước khi sử dụng nó trong câu lệnh SQL. Bạn cũng có thể sử dụng hàm PHP

INSERT INTO 'ajax_example' VALUES ['Jerry', 120, 'm', 20];
INSERT INTO 'ajax_example' VALUES ['Regis', 75, 'm', 44];
INSERT INTO 'ajax_example' VALUES ['Frank', 45, 'm', 87];
INSERT INTO 'ajax_example' VALUES ['Jill', 22, 'f', 72];
INSERT INTO 'ajax_example' VALUES ['Tracy', 27, 'f', 0];
INSERT INTO 'ajax_example' VALUES ['Julie', 35, 'f', 90];
4 để thoát các ký tự đặc biệt trong đầu vào của người dùng và tạo một chuỗi SQL hợp lệ để bảo vệ chống lại SQL injection

PHP có sử dụng AJAX không?

Phần lớn các trang web dựa trên PHP đang sử dụng các giải pháp dựa trên Ajax & jQuery để có trải nghiệm người dùng tốt hơn trên các trang web của họ vì JavaScript và XML không đồng bộ cho phép có các tính năng phong phú như vậy trong trang web mà chỉ riêng PHP . Một số tính năng là. Tìm kiếm đề xuất tự động.

Làm cách nào để kết nối cơ sở dữ liệu bằng PHP và AJAX?

Tạo đối tượng XMLHttpRequest . Tạo chức năng sẽ được thực thi khi phản hồi của máy chủ đã sẵn sàng. Gửi yêu cầu đến một tệp trên máy chủ. Lưu ý rằng một tham số [q] được thêm vào URL [với nội dung của danh sách thả xuống]

Làm cách nào để gọi một hàm PHP trong AJAX?

Những gì bạn muốn giống như. $. ajax[{ url. '/my/site', dữ liệu. {hoạt động. 'thử nghiệm'}, gõ. 'đăng', thành công. chức năng [đầu ra] { cảnh báo [đầu ra];

Làm cách nào để tìm kiếm dữ liệu trong PHP bằng AJAX?

Tìm kiếm cơ sở dữ liệu trực tiếp của Ajax .
Bước 1. Tạo bảng cơ sở dữ liệu. Thực hiện truy vấn SQL sau để tạo bảng quốc gia trong cơ sở dữ liệu MySQL của bạn. .
Bước 2. Tạo biểu mẫu tìm kiếm. .
Bước 3. Xử lý truy vấn tìm kiếm trong phụ trợ

Chủ Đề