PHP模糊查询技术实例分析「附源码下载」

1.引言

在开发网站时,模糊查询功能非常常见,它可以让用户在输入不完整或拼写错误的关键字时,从数据库中返回正确的结果。PHP提供了多种方法来完成模糊查询,本文将介绍一种直观简便的方法来实现模糊查询功能。

2.实现方法

2.1 数据库准备

模糊查询需要使用数据库,本文使用MySQL数据库。下面是表的结构和数据。

CREATE TABLE IF NOT EXISTS `product` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` varchar(50) NOT NULL,

`price` decimal(10,2) NOT NULL,

`description` text NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

INSERT INTO `product` (`id`, `name`, `price`, `description`) VALUES

(1, 'iPhone X', 999.00, 'The latest iPhone'),

(2, 'Samsung Galaxy S9', 739.00, 'The latest Samsung phone'),

(3, 'Google Pixel 2', 649.00, 'The latest Google phone'),

(4, 'Huawei Mate 10', 699.00, 'The latest Huawei phone');

2.2 页面准备

模糊查询是基于用户输入的关键字来查询数据库。因此需要一个包含输入框和查询按钮的页面。下面是简单的HTML代码。

2.3 PHP代码实现

下面是search.php的代码。首先通过GET方法获取用户输入的关键字。如果用户没有输入关键字,那么直接退出程序。否则,将关键字作为搜索条件构造SQL语句来查询数据库,并将查询结果输出到页面上。

<?php

if (!isset($_GET['keyword'])) {

exit("请输入关键字");

}

$keyword = $_GET['keyword'];

// 创建PDO对象

$db = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 构造SQL语句

$sql = "SELECT * FROM product WHERE name LIKE :keyword OR description LIKE :keyword";

$stmt = $db->prepare($sql);

$stmt->bindValue(':keyword', '%' . $keyword . '%', PDO::PARAM_STR);

$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果

foreach ($results as $row) {

echo '<h3>' . $row['name'] . '</h3>';

echo '<p>Price: ' . $row['price'] . '</p>';

echo '<p>Description: ' . $row['description'] . '</p>';

}

?>

3.实现效果

在浏览器中输入search.php,可以看到搜索页面。在输入框中输入关键字"latest",点击按钮进行查询,结果如下。

3.1 搜索页面

3.2 搜索结果

4.总结

本文介绍了一种简便的方法来实现模糊查询功能,包括数据库准备、页面准备和PHP代码实现。在实际开发中,还可以通过AJAX等技术来优化用户体验。由于本文没有对查询结果进行分页处理,对于大量查询结果的情况,需要考虑分页的实现。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签