用PHP做图书查询,并且可以分页查询
时间: 2024-01-22 19:17:28 浏览: 120
简单的PHP书籍查询页面
4星 · 用户满意度95%
可以使用PHP以及MySQL数据库来实现图书查询和分页查询。
首先,需要在MySQL数据库中建立一个图书表,包含图书的ID、名称、作者、出版社、出版日期等信息。然后,使用PHP连接数据库,并编写SQL语句查询图书信息。
例如,查询所有图书信息的SQL语句如下:
```
SELECT * FROM book
```
接下来,可以使用PHP中的mysqli_query()函数执行SQL语句,并将查询结果存储在一个数组中。
```
$result = mysqli_query($conn, "SELECT * FROM book");
$books = mysqli_fetch_all($result, MYSQLI_ASSOC);
```
这里的$conn是连接MySQL数据库的对象。
接下来,可以使用PHP中的array_slice()函数和count()函数来实现分页功能。例如,每页显示10本图书,当前页码为$page。
```
$page_size = 10;
$total_count = count($books);
$total_page = ceil($total_count / $page_size);
$offset = ($page - 1) * $page_size;
$books = array_slice($books, $offset, $page_size);
```
最后,可以使用PHP循环输出查询结果,例如:
```
foreach($books as $book) {
echo "<tr>";
echo "<td>" . $book['id'] . "</td>";
echo "<td>" . $book['name'] . "</td>";
echo "<td>" . $book['author'] . "</td>";
echo "<td>" . $book['publisher'] . "</td>";
echo "<td>" . $book['publish_date'] . "</td>";
echo "</tr>";
}
```
在HTML中,可以使用表格来展示查询结果。完整的代码可以参考下面的示例:
```
<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");
// 查询所有图书信息
$result = mysqli_query($conn, "SELECT * FROM book");
$books = mysqli_fetch_all($result, MYSQLI_ASSOC);
// 分页
$page = $_GET['page'] ?? 1;
$page_size = 10;
$total_count = count($books);
$total_page = ceil($total_count / $page_size);
$offset = ($page - 1) * $page_size;
$books = array_slice($books, $offset, $page_size);
// 输出查询结果
echo "<table>";
echo "<tr><th>ID</th><th>名称</th><th>作者</th><th>出版社</th><th>出版日期</th></tr>";
foreach($books as $book) {
echo "<tr>";
echo "<td>" . $book['id'] . "</td>";
echo "<td>" . $book['name'] . "</td>";
echo "<td>" . $book['author'] . "</td>";
echo "<td>" . $book['publisher'] . "</td>";
echo "<td>" . $book['publish_date'] . "</td>";
echo "</tr>";
}
echo "</table>";
// 输出分页链接
echo "<div>";
if($page > 1) {
echo "<a href='?page=".($page-1)."'>上一页</a>";
}
for($i=1; $i<=$total_page; $i++) {
if($i == $page) {
echo "<span>$i</span>";
} else {
echo "<a href='?page=$i'>$i</a>";
}
}
if($page < $total_page) {
echo "<a href='?page=".($page+1)."'>下一页</a>";
}
echo "</div>";
?>
```
阅读全文