首先我要构造一个导航条,上面需要有图书馆后台能够管理的所有功能模块。
从最基本的开始,导航条需要有读者管理、图书管理,这是两种客观对象。由两种客观对象之间的关系,又产生了图书借阅管理,最后还要有一个都会有的系统设置。
所以基本的导航应该是如下:
图书管理 | 读者管理 | 借阅管理 | 系统设置 |
那么系统可以按逐个功能模块的去分析构建。
从图书管理开始。
图书管理主要是用来统计存了多少本、什么类型的书。也就是说,要维护一个由专门保存图书记录的数据表。
而对这个数据库的增删改查,就分别形成了,添加书目、删除书目、修改书目、查询书目四个功能模块。
添加书目开始,当然需要一个独立的页面。因为要输入的内容太多了。
而删除书目,则可以在主页中直接实现。
修改书目也需要一个独立的页面。
查询可以在主页中直接实现。
再具体到添加书目的实现。
这个独立页面就相当于书目的注册页面了。
这个时候需要同时确定这个数据表的表结构了。
那么如何确定哪些关键字需要存储呢?
当然是需要被使用到的字段。
那么使用者有两类人。
第一类是读者,读者不管是借书还是还书都只需要书名、作者、出版时间就可以了。
第二类是图书馆管理员,管理员会增加和删除书库,可用编号来确定每一本书,即条形码。
当然分下来书的基数太大了,所以我们可以很自然的对图书进行分类管理,也就是加一个图书类型字段。有时候可以视情况而定,看需不需要在分类里再增加子类。
好的,暂且确定下来的基本表结构为:
bookname | author | printtime | barcode | booktype |
char(100) | char(100) | date() | int(20) | char(100) |
(数据类型是瞎定的,有待优化。)
创建的时候会发现还需要确定一个主键,主键必须要能唯一确定一项表内容,暂时定条形码吧。这个是肯定可以的。
create table books(
bookname varchar(100),
author varchar(100),
printtime date,
barcode primary key not null,
booktype varchar(100));
OK,表创建好了,下一步是创建一个提交的页面。命名为books_add.php
<html>
<head>
<title>添加书目信息</title>
</head>
<body>
<form action = "books_add_ok.php" method = "POST">
<label>书名</label>
<input type = "text" name = "bookname"></input></br>
<label>作者</label>
<input type = "text" name = "author"></input></br>
<label>出版时间</label>
<input type = "text" name = "printtime"></input></br>
<label>条形码</label>
<input type = "text" name = "barcode"></input></br>
<label>书目类型</label>
<input type = "text" name = "bookname"></input></br>
<button type = "submit" >提交</button>
</body>
</html>
ok,一个不能再简单的表单好了。
出现了一个问题,php的插入代码其实我可以在本页内就直接实现。
那么要不要Post到其他php文件还是直接在本页内实现呢?
手上的案例是分离的,也许是因为前后代码分离更方便阅读的原则吧。
那我们也这样咯。需要一个books_insert.php文件。
这个时候发现一个问题,光看文件名books_insert与books_add完全看不出是什么关系啊。这个命名不好。
我需要能从文件名上就能看出彼此逻辑关系的命名方式。所以,books_insert.php改名为books_add_ok.php。
<?php
include "conn/conn.php";
$bookname = $_POST['bookname'];
$author = $_POST['a