Hướng dẫn search in php mysql - tìm kiếm trong php mysql


Yêu cầu: Xây dựng chức năng tìm kiếm sinh viên rồi hiển thị danh sách sinh viên cần tìm ra màn hình

Bước 1 : Đầu tiên chúng ta mở lại file index.php đã được tạo ở Phần 1 và xây dựng cấu trúc HTML cho form tìm kiếm gồm một input và 2 nút submit là đủ.  Do chúng ta phải truyền đối số vào url nên chúng ta đặt method của form bằng phương thức GET. Đầu tiên chúng ta mở lại file index.php đã được tạo ở Phần 1 và xây dựng cấu trúc HTML cho form tìm kiếm gồm một input và 2 nút submit là đủ.  Do chúng ta phải truyền đối số vào url nên chúng ta đặt method của form bằng phương thức GET.

Nội dung chính

  • 1. Xây dựng Cơ sở dữ liệu để tìm kiếm
  • 2. Xây dựng Form tìm kiếm
  • 3. Cần phải hiểu trước khi làm bài
  • 4. Xử lý tìm kiếm với lệnh Like trong MySql
  • 5. Lời kết

Hướng dẫn search in php mysql - tìm kiếm trong php mysql

Bước 2 : Xử lý tìm kiếm với lệnh LIKE trong MySQL. Tham khảo full đoạn code dưới đây nhé :  Xử lý tìm kiếm với lệnh LIKE trong MySQL. Tham khảo full đoạn code dưới đây nhé : 

Bước 3 : Chạy lại file index.php, chúng ta nhận được danh sách sinh viên ban đầu :  Chạy lại file index.php, chúng ta nhận được danh sách sinh viên ban đầu : 

Vào ô tìm kiếm, ví dụ ta sẽ tìm kiếm những bạn sinh năm 1998 rồi ấn nút Tìm thì chúng ta sẽ nhận đươc kết quả này: Tìm thì chúng ta sẽ nhận đươc kết quả này: 

Còn ví dụ chúng ta tìm kiếm danh sách sinh viên có tên là Lan thì chúng sẽ trả về kết quả rỗng : 

Nguồn Devmaster Academy

Trong bài này tôi sẽ hướng dẫn các bạn cách xây dựng một chức năng tìm kiếm kì đơn giản, đây được xem là một chức năng mà đa số website nào cũng cần phải có. Bài viết này sẽ hướng dẫn các bạn cách thao tác với database dùng để truy vấn và lọc dữ liệu ở mức độ đơn giản nhất. Để có thể tiếp thu tốt các bạn cần phải có một số kiến thức cố định về php như jquery, php căn bản...vv. Tất cả kiến thức tôi vừa nêu ra nếu bạn nào chưa nắm vững có thể vào serie php căn bản để xem nhé.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.freetuts.net, không được copy dưới mọi hình thức.

1. Xây dựng Cơ sở dữ liệu để tìm kiếm

2. Xây dựng Form tìm kiếm

/*
SQLyog Ultimate - MySQL GUI v8.21 
MySQL - 5.5.20 : Database - basic
*********************************************************************
*/


/*!40101 SET NAMES utf8 */;

/*!40101 SET SQL_MODE=''*/;

/*!40014 SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @[email protected]@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`basic` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci */;

USE `basic`;

/*Table structure for table `users` */

DROP TABLE IF EXISTS `users`;

CREATE TABLE `users` (
  `user_id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `password` char(32) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `address` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

/*Data for the table `users` */

insert  into `users`(`user_id`,`username`,`password`,`email`,`address`) values (1,'kaito','456','','House USA'),(2,'thehaftheart','456','','House USA'),(3,'superkaito','456','','House Viet Nam'),(4,'kaitosolo','1789','[email protected]ô.com','abc/fdc'),(5,'van canh','798','','Bien hoa'),(6,'yongc','789','','Bien Hoa'),(7,'haftheart789','789','','Ha tinh'),(8,'yongc456','56465','','Bien Hoa 2'),(9,'van canh456','564564','','Bien Hoa 3'),(10,'kaitocode','87897','','TPHCM');

/*!40101 SET [email protected]_SQL_MODE */;
/*!40014 SET [email protected]_FOREIGN_KEY_CHECKS */;
/*!40014 SET [email protected]_UNIQUE_CHECKS */;
/*!40111 SET [email protected]_SQL_NOTES */;

3. Cần phải hiểu trước khi làm bài

2. Xây dựng Form tìm kiếm

3. Cần phải hiểu trước khi làm bài

  • 4. Xử lý tìm kiếm với lệnh Like trong MySql
  • 5. Lời kết
<html>
    <head>
        <title>Demo Search Basic by freetuts.net</title>
    </head>
    <body>
        <div align="center">
            <form action="search.php" method="get">
                Search: <input type="text" name="search" />
                <input type="submit" name="ok" value="search" />
            </form>
        </div>
        <?php
        
        // Phần code PHP xử lý tìm kiếm
        
        ?>
    </body>
</html>

Bước 2 : Xử lý tìm kiếm với lệnh LIKE trong MySQL. Tham khảo full đoạn code dưới đây nhé : 

Bước 3 : Chạy lại file index.php, chúng ta nhận được danh sách sinh viên ban đầu : 

Vào ô tìm kiếm, ví dụ ta sẽ tìm kiếm những bạn sinh năm 1998 rồi ấn nút Tìm thì chúng ta sẽ nhận đươc kết quả này: 

Còn ví dụ chúng ta tìm kiếm danh sách sinh viên có tên là Lan thì chúng sẽ trả về kết quả rỗng : 

if (isset($_REQUEST['ok'])) {
    $search = addslashes($_GET['search']);
    if (empty($search)) {
        echo "Yeu cau nhap du lieu vao o trong";
    } else {
        // Phan dung vong lap while show du lieu
    }
}


Nguồn Devmaster Academy

4. Xử lý tìm kiếm với lệnh Like trong MySql

5. Lời kết

<html>
    <head>
        <title>Demo Search Basic by freetuts.net</title>
    </head>
    <body>
        <div align="center">
            <form action="search.php" method="get">
                Search: <input type="text" name="search" />
                <input type="submit" name="ok" value="search" />
            </form>
        </div>
        <?php
        // Nếu người dùng submit form thì thực hiện
        if (isset($_REQUEST['ok'])) 
        {
            // Gán hàm addslashes để chống sql injection
            $search = addslashes($_GET['search']);

            // Nếu $search rỗng thì báo lỗi, tức là người dùng chưa nhập liệu mà đã nhấn submit.
            if (empty($search)) {
                echo "Yeu cau nhap du lieu vao o trong";
            } 
            else 
            {
                // Dùng câu lênh like trong sql và sứ dụng toán tử % của php để tìm kiếm dữ liệu chính xác hơn.
                $query = "select * from users where username like '%$search%'";

                // Kết nối sql
                mysql_connect("localhost", "root", "vertrigo", "basic");

                // Thực thi câu truy vấn
                $sql = mysql_query($query);

                // Đếm số đong trả về trong sql.
                $num = mysql_num_rows($sql);

                // Nếu có kết quả thì hiển thị, ngược lại thì thông báo không tìm thấy kết quả
                if ($num > 0 && $search != "") 
                {
                    // Dùng $num để đếm số dòng trả về.
                    echo "$num ket qua tra ve voi tu khoa <b>$search</b>";

                    // Vòng lặp while & mysql_fetch_assoc dùng để lấy toàn bộ dữ liệu có trong table và trả về dữ liệu ở dạng array.
                    echo '<table border="1" cellspacing="0" cellpadding="10">';
                    while ($row = mysql_fetch_assoc($sql)) {
                        echo '<tr>';
                            echo "<td>{$row['user_id']}</td>";
                            echo "<td>{$row['username']}</td>";
                            echo "<td>{$row['password']}</td>";
                            echo "<td>{$row['email']}</td>";
                            echo "<td>{$row['address']}</td>";
                        echo '</tr>';
                    }
                    echo '</table>';
                } 
                else {
                    echo "Khong tim thay ket qua!";
                }
            }
        }
        ?>   
    </body>
</html>

Bước 2 : Xử lý tìm kiếm với lệnh LIKE trong MySQL. Tham khảo full đoạn code dưới đây nhé : 

5. Lời kết

Bước 2 : Xử lý tìm kiếm với lệnh LIKE trong MySQL. Tham khảo full đoạn code dưới đây nhé :