php+mysql 图书管理系统

1、实验目的

设计并实现一个精简的图书管理系统,要求具有图书入库、查询、借书、还书、借书证管理等功能。

2、实验平台

  • WAMP
  • win 10
  • mysqli

3、系统需求分析

基本数据对象

  • 书(书号、类别、书名、出版社、年份、作者、价格、总藏书量、库存)
  • 借书证(卡号、姓名、单位、类别(学生/教师))
  • 管理员(管理员ID,密码,姓名,联系方式)
  • 结束记录(书号、借书证号、借期、还期、经手(管理员id))

基本功能模块

管理员登录

输入管理员ID, 密码; 登入系统 或 返回ID/密码 错误.

图书入库

  1. 单本入库
  2. 批量入库 (方便最后测试)
    图书信息存放在文件中, 每条图书信息为一行. 一行中的内容如下
    ( 书号, 类别, 书名, 出版社, 年份, 作者, 价格, 数量 )
    Note: 其中 年份、数量是整数类型; 价格是两位小数类型; 其余为字符串类型
    Sample:
    ( book_no_1, Computer Science, Computer Architecture, xxx, 2004, xxx, 90.00, 2 )

图书查询

要求可以对书的 类别, 书名, 出版社, 年份(年份区间), 作者, 价格(区间) 进行查询. 每条图书信息包括以下内容:
( 书号, 类别, 书名, 出版社, 年份, 作者, 价格, 总藏书量, 库存 )

可选要求: 可以按用户指定属性对图书信息进行排序. (默认是书名)

借书

  1. 输入借书证卡号
    显示该借书证所有已借书籍 (返回, 格式同查询模块)
  2. 输入书号
    如果该书还有库存,则借书成功,同时库存数减一。
    否则输出该书无库存,且输出最近归还的时间。

还书

1.输入借书证卡号
显示该借书证所有已借书籍 (返回, 格式同查询模块)
2.输入书号
如果该书在已借书籍列表内, 则还书成功, 同时库存加一.
否则输出出错信息.

借书证管理

增加或删除一个借书证.

4、系统设计

4.1 总体设计

采用简单粗暴的MV(视图-模型)这一系统模型,在视图端(浏览器)发送请求,服务器处理这一请求并返回数据,视图接受数据并显示到视图中。
在这里插入图片描述

4.2 数据库表结构设计

表定义

create table book
(
	bno char(8),
    category char(10),
    title varchar(40),
    press varchar(30),
    year int,
    author varchar(20),
    price decimal(7,2),
    total int,
    stock int,
    primary key(bno)
);

create table card
(
	cno char(7),
    name varchar(10),
    department varchar(40),
    type char(1),
    primary key(cno),
    check (type in ('T','S'))
);

create table admin
(
	admin_id char(20),
	password char(20),
	name char(20),
	email char(30),
	primary key(admin_id)
);

create table borrow
(
	cno char(7),
    bno char(8),
    borrow_date date,
    return_date date,
    done_by char(20),
    foreign key (bno) references book(bno) on delete cascade,
    foreign key (cno) references card(cno) on update cascade
);

但是,mysql的check是无用的,使用触发器来实现check功能:

DELIMITER $$
create trigger type_check_triger before insert on card
for each row
begin
	if(new.type not in ('T','S'))
	then 
		signal sqlstate '04922'
		set message_text = "ERROR: card type not in ('T','S')";
	end if;
end $$
DELIMITER ;
4.3 管理员登录模块

首先进入主页,选择(管理员/查询)这两个功能之一。由于普通用户只能进行查询功能,就不需要它们登录了。

这里使用的是html的radio表单:

<form method="post" 
				action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
				    <input type="radio" name="q" value="admin">ADMIN
				    <input type="radio" name="q" value="user">USER
					<input type="submit" value=" OK ">
					<span class="error" style="color:brown"> <?php echo $choseerror;?></span>
</form>

php脚本根据表单提交选择用户查询界面或者登录界面:

<?php 
	$choseerror="";
	$chose="";
	if($_SERVER["REQUEST_METHOD"] == "POST"){
   
		if(empty($_POST['q'])){
   
			$choseerror = "必须选择访问身份";
		} else {
   
			$chose=$_POST['q'];
			if($chose=="admin"){
   
				header("location:login.php");
			}else{
   
				header("location:query.php");
			}
		}
	}
?>

登录界面如下图:
在这里插入图片描述
选择admin身份,进入登录界面,输入账号和密码:
在这里插入图片描述
这个初始的账号是我在创建数据库的时候创建的:
在这里插入图片描述
在登录界面的login.php中,首先和数据库建立连接,这里我使用了mysqli这个mysql拓展来连接。在连接的过程中有一点要注意的是,由于wamp默认了mariadb,所以你在连接的时候要指定mysql服务器的端口号。我就是在连接时找不到我创建的book数据库,然后在这了卡了很久。

<?php
    $server_name="localhost";
    $username="root";
    $password="qazwsx";
    $dbname="book";
    $conn = new mysqli($server_name,$username,$password,$dbname,'3308');

    if ($conn->connect_error) {
   
        die("连接失败: " . $conn->connect_error);
    } 
?>

之后再从book数据库中,select看看是否有表单输入的账户id和pwd,按情况分别处理:

        include 'connect.php';
        $id=$_POST['account'];
        $pwd=$_POST['password'];
        $sql_query="select * from admin where admin_id='".$id."' and password = '".$pwd."'";
        $sql=$conn->query($sql_query);
        $info=mysqli_fetch_array($sql);
        if($info==false){
   
            $loginerror
  • 33
    点赞
  • 370
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
PHP+MySQL图书管理系统是一种基于Web的应用程序,用于管理图书馆或书店的图书。以下是实现PHP+MySQL图书管理系统的步骤: 1. 首先,你需要下载并安装一个Web服务器,例如Apache,并确保PHPMySQL已经安装并配置好了。 2. 创建一个MySQL数据库,用于存储图书信息。你可以使用phpMyAdmin等工具来创建数据库和表。 3. 下载并解压缩PHP+MySQL图书管理系统源码包。 4. 将源码包中的文件复制到Web服务器的根目录下。 5. 修改config.php文件,将其中的数据库连接信息修改为你自己的信息。 6. 运行Web服务器,并在浏览器中输入http://localhost/来访问图书管理系统。 7. 在图书管理系统中,你可以添加、删除、编辑和搜索图书信息。此外,你还可以生成报表和统计数据。 关于PHPExcel的使用,你可以按照以下步骤来读写xls文件: 1. 下载并解压缩PHPExcel开源包。 2. 将classes文件夹复制到你的项目中。 3. 在你的PHP文件中,使用require函数引入PHPExcel.php文件。 4. 创建一个PHPExcel对象,并使用它来读取或写入xls文件。 以下是一个读取xls文件的例子: ```php require_once 'path/to/PHPExcel.php'; // 创建一个PHPExcel对象 $objPHPExcel = new PHPExcel(); // 读取xls文件 $objReader = PHPExcel_IOFactory::createReader('Excel5'); $objPHPExcel = $objReader->load('path/to/your/file.xls'); // 获取第一个工作表 $sheet = $objPHPExcel->getSheet(0); // 获取行数和列数 $highestRow = $sheet->getHighestRow(); $highestColumn = $sheet->getHighestColumn(); // 遍历每一行 for ($row = 1; $row <= $highestRow; $row++){ // 获取单元格的值 $value = $sheet->getCellByColumnAndRow(0, $row)->getValue(); echo $value; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值