下面是详细讲解“PHP实现多条件查询实例代码”的完整攻略:
1. 准备工作
在开始编写代码之前,需要先梳理一下查询的需求,并设计好数据库结构。例如,我们要查询一些书籍信息,那么可以创建一个名为 books 的数据表,并在其中添加一些字段,如图所示:
CREATE TABLE `books` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`author` varchar(50) NOT NULL,
`publisher` varchar(50) NOT NULL,
`publish_date` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
为了方便演示,我在表中添加了几本书的信息,如下:
INSERT INTO `books` (`id`, `title`, `author`, `publisher`, `publish_date`) VALUES
(1, 'PHP基础教程', '李明', '清华大学出版社', '2017-01-01'),
(2, 'MySQL实战', '王强', '机械工业出版社', '2018-07-01'),
(3, 'JavaScript权威指南', 'David Flanagan', '人民邮电出版社', '2016-05-01'),
(4, 'HTML5与CSS3权威指南', 'Bill Kennedy', '中国人民大学出版社', '2014-12-01'),
(5, 'Python深度学习', '斯宾塞·鲁桑波尔', '海洋出版社', '2019-03-01'),
(6, 'Java编程思想', 'Bruce Eckel', '机械工业出版社', '2011-10-01');
2. 编写查询代码
接下来,我们可以编写 PHP 代码来实现多条件查询。以书籍信息查询为例,查询条件可能包括书名、作者、出版社和出版日期等四个字段。假设用户需要查询早于 2017 年、出版社为“机械工业出版社”且作者为“王强”的图书,可以用以下代码实现:
<?php
// 连接数据库
$pdo = new PDO("mysql:host=localhost;dbname=mydb", "username", "password");
// 接收查询条件
$title = $_GET['title'] ?? ''; // 书名
$author = $_GET['author'] ?? ''; // 作者
$publisher = $_GET['publisher'] ?? ''; // 出版社
$before_date = '2017-01-01'; // 早于此日期的书籍
// 拼接 SQL 查询语句
$sql = "SELECT * FROM `books` WHERE `publish_date` < :before_date";
$parameters = array(':before_date' => $before_date);
if (!empty($title)) {
$sql .= " AND `title` LIKE :title";
$parameters[':title'] = "%$title%";
}
if (!empty($author)) {
$sql .= " AND `author` = :author";
$parameters[':author'] = $author;
}
if (!empty($publisher)) {
$sql .= " AND `publisher` = :publisher";
$parameters[':publisher'] = $publisher;
}
// 执行查询
$statement = $pdo->prepare($sql);
$statement->execute($parameters);
$rows = $statement->fetchAll(PDO::FETCH_ASSOC);
// 输出查询结果
foreach ($rows as $row) {
echo "{$row['title']} - {$row['author']} ({$row['publisher']}) \n";
echo "出版日期:{$row['publish_date']} \n";
echo "\n";
}
?>
3. 示例说明
3.1 示例一
现在假设有一个用户需要查询所有出版社为“机械工业出版社”且作者为“王强”的图书。可以在浏览器中访问以下 URL 来实现此次查询:
http://localhost/search.php?author=王强&publisher=机械工业出版社
程序会将查询结果输出到浏览器中。如果查询成功,会输出以下内容:
MySQL实战 - 王强 (机械工业出版社)
出版日期:2018-07-01
3.2 示例二
再假设有一个用户需要查询所有出版日期早于 2017 年、出版社为“机械工业出版社”且书名包含“基础”的图书。可以在浏览器中访问以下 URL 来实现此次查询:
http://localhost/search.php?title=基础&publisher=机械工业出版社
程序会将查询结果输出到浏览器中。如果查询成功,会输出以下内容:
Java编程思想 - Bruce Eckel (机械工业出版社)
出版日期:2011-10-01
好了,以上就是“PHP实现多条件查询实例代码”的完整攻略。如果还有任何问题,欢迎在评论区提出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现多条件查询实例代码 - Python技术站