用PHP+MySQL做一个图书管理系统并实现对数据库的增删等功能代码

时间: 2024-03-10 17:46:07 浏览: 17
好的,以下是一个简单的图书管理系统的实现示例: 1. 首先,需要创建一个MySQL数据库,其中包含两个表:book和category。book表用于存储图书信息,category表用于存储图书分类信息。具体的表结构如下: book表: | Field | Type | Null | Key | Default | Extra | |-------------|--------------|------|-----|---------|----------------| | id | int(11) | NO | PRI | NULL | auto_increment | | title | varchar(255) | NO | | NULL | | | author | varchar(255) | NO | | NULL | | | category_id | int(11) | NO | | NULL | | | price | decimal(10,2)| NO | | NULL | | category表: | Field | Type | Null | Key | Default | Extra | |-------|--------------|------|-----|---------|----------------| | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | 2. 创建一个PHP文件,用于连接数据库,获取和更新数据。 ```php <?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取图书列表 function get_books() { global $conn; $sql = "SELECT b.id, b.title, b.author, c.name as category_name, b.price FROM book b INNER JOIN category c ON b.category_id = c.id"; $result = $conn->query($sql); $books = array(); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $books[] = $row; } } return $books; } // 获取分类列表 function get_categories() { global $conn; $sql = "SELECT * FROM category"; $result = $conn->query($sql); $categories = array(); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $categories[] = $row; } } return $categories; } // 添加图书 function add_book($title, $author, $category_id, $price) { global $conn; $sql = "INSERT INTO book (title, author, category_id, price) VALUES ('$title', '$author', '$category_id', '$price')"; if ($conn->query($sql) === TRUE) { return true; } else { return false; } } // 删除图书 function delete_book($book_id) { global $conn; $sql = "DELETE FROM book WHERE id='$book_id'"; if ($conn->query($sql) === TRUE) { return true; } else { return false; } } // 关闭连接 $conn->close(); ?> ``` 3. 创建一个页面,用于显示图书列表和添加图书。 ```php <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>图书管理系统</title> </head> <body> <h1>图书列表</h1> <table> <tr> <th>编号</th> <th>标题</th> <th>作者</th> <th>分类</th> <th>价格</th> <th>操作</th> </tr> <?php require_once 'db.php'; $books = get_books(); foreach ($books as $book) { echo "<tr>"; echo "<td>".$book['id']."</td>"; echo "<td>".$book['title']."</td>"; echo "<td>".$book['author']."</td>"; echo "<td>".$book['category_name']."</td>"; echo "<td>".$book['price']."</td>"; echo "<td><a href=\"delete_book.php?id=".$book['id']."\">删除</a></td>"; echo "</tr>"; } ?> </table> <h1>添加图书</h1> <form method="post" action="add_book.php"> <label>标题:</label><input type="text" name="title"><br> <label>作者:</label><input type="text" name="author"><br> <label>分类:</label> <select name="category_id"> <?php $categories = get_categories(); foreach ($categories as $category) { echo "<option value=\"".$category['id']."\">".$category['name']."</option>"; } ?> </select><br> <label>价格:</label><input type="text" name="price"><br> <input type="submit" value="添加"> </form> </body> </html> ``` 4. 创建一个页面,用于处理添加图书的请求。 ```php <?php require_once 'db.php'; $title = $_POST['title']; $author = $_POST['author']; $category_id = $_POST['category_id']; $price = $_POST['price']; if (add_book($title, $author, $category_id, $price)) { echo "添加成功!"; } else { echo "添加失败!"; } ?> ``` 5. 创建一个页面,用于处理删除图书的请求。 ```php <?php require_once 'db.php'; $book_id = $_GET['id']; if (delete_book($book_id)) { echo "删除成功!"; } else { echo "删除失败!"; } ?> ``` 注意:以上示例只是一个简单的演示,实际开发中需要考虑更多的因素,如安全性、性能等。

相关推荐

最新推荐

recommend-type

麦肯锡-年月―中国xx集团战略咨询项目建议书.ppt

麦肯锡-年月―中国xx集团战略咨询项目建议书.ppt
recommend-type

廖倩5.14运营款.xlsx

廖倩5.14运营款.xlsx
recommend-type

setuptools-25.0.2-py2.py3-none-any.whl

文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

全网第一个宝宝生活记录网站root ca

全网第一个宝宝生活记录网站,帮我写一个网站介绍,网址 https://43.136.21.175/ ,二维码分享和登录,统计记录最近时间,功能很全很实用,手机和电脑都可以访问,手机浏览器可以生成快捷方式到桌面和App一样,点右上角可以打开菜单,里面我做了图表统计可以看每天的喂养次数哪些,我们一直在用,很方便的
recommend-type

yes I can.mp3

yes I can.mp3
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。