写一个图书借阅系统php
时间: 2023-09-26 12:09:28 浏览: 137
好的,下面是一个简单的图书借阅系统的 PHP 代码示例:
1. 创建数据库
首先,我们需要创建一个数据库和两个数据表。一个数据表用来存储所有的书籍信息,另一个数据表用来存储借阅信息。
```sql
CREATE DATABASE library;
USE library;
CREATE TABLE books (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
publish_date DATE NOT NULL,
quantity INT(11) NOT NULL,
available INT(11) NOT NULL
);
CREATE TABLE borrow (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
book_id INT(11) NOT NULL,
borrower_name VARCHAR(255) NOT NULL,
borrow_date DATE NOT NULL,
return_date DATE NOT NULL
);
```
2. 连接数据库
在 PHP 文件中,我们需要连接到我们创建的数据库。在这个例子中,我们将使用 PDO 进行连接。
```php
<?php
//连接到 MySQL 数据库
try {
$pdo = new PDO('mysql:host=localhost;dbname=library;charset=utf8', 'username', 'password');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
?>
```
3. 显示书籍列表
接下来,我们需要编写代码来显示所有书籍的列表。我们将从数据库中查询书籍信息,并在 HTML 表格中显示它们。
```php
<?php
//查询所有书籍
$sql = "SELECT * FROM books";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$books = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<table>
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>出版日期</th>
<th>总量</th>
<th>可借数量</th>
</tr>
<?php foreach($books as $book): ?>
<tr>
<td><?php echo $book['id']; ?></td>
<td><?php echo $book['title']; ?></td>
<td><?php echo $book['author']; ?></td>
<td><?php echo $book['publish_date']; ?></td>
<td><?php echo $book['quantity']; ?></td>
<td><?php echo $book['available']; ?></td>
</tr>
<?php endforeach; ?>
</table>
```
4. 借阅书籍
当用户想要借阅一本书时,他们需要填写一个表单。在提交表单时,我们需要验证用户输入的信息是否正确,并将借阅信息插入到数据库中。
```php
<?php
if(isset($_POST['borrow'])) {
$book_id = $_POST['book_id'];
$borrower_name = $_POST['borrower_name'];
$borrow_date = $_POST['borrow_date'];
$return_date = $_POST['return_date'];
//验证输入的信息
if(empty($borrower_name) || empty($borrow_date) || empty($return_date)) {
$error = "请填写所有信息!";
} else {
//查询书籍信息
$sql = "SELECT * FROM books WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$book_id]);
$book = $stmt->fetch(PDO::FETCH_ASSOC);
//验证书籍是否可借
if($book['available'] <= 0) {
$error = "对不起,这本书已经被借完了!";
} else {
//插入借阅信息
$sql = "INSERT INTO borrow (book_id, borrower_name, borrow_date, return_date) VALUES (?, ?, ?, ?)";
$stmt = $pdo->prepare($sql);
$stmt->execute([$book_id, $borrower_name, $borrow_date, $return_date]);
//更新书籍信息
$available = $book['available'] - 1;
$sql = "UPDATE books SET available = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$available, $book_id]);
$success = "借阅成功!";
}
}
}
?>
<form method="post">
<label for="book_id">书籍ID</label>
<input type="text" name="book_id" id="book_id">
<br>
<label for="borrower_name">借阅者姓名</label>
<input type="text" name="borrower_name" id="borrower_name">
<br>
<label for="borrow_date">借阅日期</label>
<input type="date" name="borrow_date" id="borrow_date">
<br>
<label for="return_date">归还日期</label>
<input type="date" name="return_date" id="return_date">
<br>
<input type="submit" name="borrow" value="借阅">
</form>
```
5. 显示借阅记录
最后,我们需要编写代码来显示所有的借阅记录。
```php
<?php
//查询所有借阅记录
$sql = "SELECT borrow.*, books.title FROM borrow JOIN books ON borrow.book_id = books.id";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$borrow = $stmt->fetchAll(PDO::FETCH_ASSOC);
?>
<table>
<tr>
<th>ID</th>
<th>书名</th>
<th>借阅者姓名</th>
<th>借阅日期</th>
<th>归还日期</th>
</tr>
<?php foreach($borrow as $record): ?>
<tr>
<td><?php echo $record['id']; ?></td>
<td><?php echo $record['title']; ?></td>
<td><?php echo $record['borrower_name']; ?></td>
<td><?php echo $record['borrow_date']; ?></td>
<td><?php echo $record['return_date']; ?></td>
</tr>
<?php endforeach; ?>
</table>
```
这就是一个简单的图书借阅系统的 PHP 代码示例。当然,这只是一个基础示例,你可以根据你的需求来进行更改和扩展。
阅读全文