PHP-Mysql好运图书管理系统--【白嫖项目】

news2024/11/16 3:12:28

强撸项目系列总目录在000集

PHP要怎么学–【思维导图知识范围】

文章目录

    • 本系列校训
    • 本项目使用技术
  • 首页
    • 必要的项目知识
      • ThinkPHP的MVC
      • ThinkTemplate
      • ThinkPHP 6和ThinkPHP 5
  • phpStudy 设置
  • 导数据库
  • 前台展示页面
  • 后台的管理界面
  • 数据库表结构
  • 项目目录如图:
  • 代码部分:
    • 主页
  • 配套资源
  • 作业:

本系列校训

用免费公开视频,卷飞培训班哈人!打死不报班,赚钱靠狠干!
别人项目要白嫖,网上就找范德彪!IT之路千千万,成功之法只一条!
----------白嫖别人都有理,那是洒家看得起,要是项目不咋地,天津包子狗不理!

本项目使用技术

PHP无类PHP类写法ThinkPHP框架其它框架
**

环境

PHP版本mysql版本运行工具编辑工具
5.5.38+Apache5.5(phpstudy自带)phpstudy2018phpStorm 2018

首页

在这里插入图片描述

注意:
如果上面出现警告代码的话,
直接修改php.ini 文件配置

php.ini
warning关闭的方法:首先找到并打开php.ini配置文件;然后修改内容为“display_errors=Off”;最后保存修改即可。

修改了代码,就没有烦人的警告信息了。

必要的项目知识

ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
前面略
2015年12月11日,ThinkPHP 5.0 Beta 发布;
2017年02月27日,Thinkphp5.0.5完整版正式发布 [3] ;
2018年05月02日,Thinkphp5.1.0RC版本发布; [4]
2019年04月22日,Thinkphp6.0RC2版本发布 [5] ;
2019年08月16日,Thinkphp6.0RC4版本发布 [6] ;
2019年12月24日,Thinkphp6.0.1版本发布 [7] ;

ThinkPHP的MVC

简单易用
模型(M):模型的定义由Model类来完成。Model类位于项目目录下面的LibModel目录。
控制器(C):应用控制器(核心控制器)和Action控制器都承担了控制器的角色,区别在于Action控制器完成业务过程,而应用控制器(App类)负责调度控制。Action控制器位于项目目录下面的LibAction目录。
视图(V):模板的实现是和框架无关的,做到了100%分离,可以独立预览和制作。模板目录位于项目目录下面的Tpl目录。

ThinkTemplate

ThinkTemplate是一个使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。其特点包括:
1)支持XML标签库和普通标签的混合定义;
2)编译一次,下次直接运行而无需重新编译;
3)模板文件更新后,自动更新模板缓存;
4)自动加载当前操作的模板缓存文件,无需指定模板文件名称;
5)支持编码转换和Content-Type更换;
6)模板变量输出前缀支持,避免变量名称冲突;
7)模板常量替换,无需设置模板变量;
8)支持变量组合调节器和格式化功能;
9)支持替换其它模板引擎插件使用;
10)支持获取模板页面内容。

ThinkPHP 6和ThinkPHP 5

ThinkPHP 6和ThinkPHP 5相比,有以下几个主要的变化和改进:

  1. 更好的性能:ThinkPHP 6采用了更加高效的底层框架,具有更好的性能和更高的并发能力。同时,ThinkPHP 6还采用了协程技术,可以更加高效地处理大量的请求。
  2. 更加简洁的代码:ThinkPHP 6引入了更加简洁的语法,可以让开发者更加轻松地编写代码。同时,ThinkPHP 6还支持更加优雅的链式操作,可以让代码更加简洁易读。
  3. 更加灵活的路由:ThinkPHP 6的路由系统更加灵活,可以支持更加丰富的路由规则和参数配置。同时,ThinkPHP 6还支持自动路由,可以让开发者更加方便地进行路由配置。
  4. 更加方便的模板引擎:ThinkPHP 6采用了更加方便的模板引擎,可以让开发者更加轻松地编写模板。同时,ThinkPHP 6还支持模板布局和模板继承,可以让开发者更加方便地进行模板设计。
  5. 更加完善的文档:ThinkPHP 6的文档更加完善,包含了更加详细的API文档和使用说明,可以让开发者更加容易上手和使用。

总之,ThinkPHP 6相比ThinkPHP 5有了很多的改进和优化,可以让开发者更加高效地进行开发。同时,ThinkPHP 6还保持了ThinkPHP 5的优点,如优秀的扩展性和丰富的功能模块,可以满足各种不同的业务需求。
在这里插入图片描述
对比一下springBoot
MVC (SpringMVC)OM (mybatis)前面页面框架(Thymeleaf)
在这里插入图片描述
点击右上角登陆 注册帐号:可以使用用户: user1/密码:123456

phpStudy 设置

网站目录,不能有中文或空格,就乖乖的用C语言能识别的变量名
在这里插入图片描述

导数据库

打开mysql-front 或navicat
注意:数据库名:qzss 超级用户:root 密码:123456
运行本例附件即可。最后导入数据库成功的截图如下:
在这里插入图片描述

前台展示页面

在这里插入图片描述
我的图书,需要登陆
在这里插入图片描述
每日 推荐(页面返回需要浏览器的回退)
在这里插入图片描述
购物车。
选中一本书之后有。
在这里插入图片描述点后面的加入购物车。
在这里插入图片描述
个人中心
在这里插入图片描述

后台的管理界面

登录地址:http://localhost/admin/login.php
用户名/密码:admin/123456
在这里插入图片描述

后台管理 即可满足管理系统的通常功能。
在这里插入图片描述
分类管理
在这里插入图片描述
书的管理
在这里插入图片描述

用户管理(客户)
在这里插入图片描述
书评

在这里插入图片描述

数据库表结构

在这里插入图片描述

项目目录如图:

在这里插入图片描述

代码部分:

主页

页面都用到的连数据库的部分
在这里插入图片描述

这里有一个进入前面的

<?php
     include '../../public/common/conn.php';
     include '../public/session.php';

     $sql="select book.*,class.name cname from book,class where book.class_id=class.id and book.supplier=0 order by book.id";
     $rst=mysql_query($sql);

     $size = 4;
     $hangnum = mysql_num_rows($rst);
     if($hangnum == 0){
        echo "暂无图书";
     }else{
        $page_num = ceil($hangnum/$size);
        if(@$_GET['page_id']){
            $page_id = $_GET['page_id'];
            $start = ($page_id-1)*$size;
        }else{
            $page_id = 1;
            $start = 0;
        }

        $fenye_sel = "select book.*,class.name cname from book,class where book.class_id=class.id and book.supplier=0 order by book.id limit $start,$size";
        $fenye_add = mysql_query($fenye_sel);
?>

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>index</title>
	<link rel="stylesheet" href="../public/css/index.css">
</head>
<body>
	<div class="main">
		<table>
			<tr>
				<th>编号</th>
				<th>名称</th>
				<th>作者</th>
				<th>图片</th>
				<th>定价</th>
				<th>本站价</th>
				<th>库存</th>
				<th>销售量</th>
				<th>货架</th>
				<th>推荐</th>
				<th>分类</th>
				<th>修改</th>
				<th>删除</th>
			</tr>
			<?php
				while($row=mysql_fetch_assoc($fenye_add)){
					echo "<tr>";
					echo "<td>{$row['id']}</td>";
					echo "<td>{$row['name']}</td>";
					echo "<td>{$row['writer']}</td>";
					echo "<td><img src='../../public/uploads/thumb_{$row['img']}' width='50px'></td>";
					echo "<td>{$row['oldprice']}</td>";
					echo "<td>{$row['nowprice']}</td>";
					echo "<td>{$row['stock']}</td>";
					echo "<td>{$row['sales']}</td>";
					if($row['shelf']){
						echo "<td>上架</td>";
					}else{
						echo "<td>下架</td>";
					}
					if($row['recommend']){
                    	echo "<td>推荐</td>";
                    }else{
                    	echo "<td>不推荐</td>";
                    }
					echo "<td>{$row['cname']}</td>";
					echo "<td><a href='change.php?id={$row['id']}'>修改</a></td>";
					echo "<td><a href='delete.php?id={$row['id']}&img={$row['img']}'>删除</a></td>";
					echo "</tr>";
				}
			?>
			<tr>
              <td colspan="13">
              <?php
            	echo "本站共有&nbsp;".$hangnum."&nbsp;条记录&nbsp;";
            	echo "本页显示&nbsp;".$size."&nbsp;条&nbsp;";
            	echo "第&nbsp;".$page_id."&nbsp;页/共&nbsp;".$page_num."&nbsp;页&nbsp;";
            	if($page_id>=1 && $page_num>1){
            		echo "<a href=?page_id=1>首页&nbsp;&nbsp;</a>";
            	}
            	if($page_id>1 && $page_num>1){
            		echo "<a href=?page_id=".($page_id-1).">上一页&nbsp;&nbsp;</a>";
            	}
            	if($page_id>=1 && $page_num>$page_id){
            		echo "<a href=?page_id=".($page_id+1).">下一页&nbsp;&nbsp;</a>";
            	}
            	if($page_id>=1 && $page_num>1){
            	    echo "<a href=?page_id=".$page_num.">尾页</a>";
            	}
            	echo "</td>";
                echo "</tr>";
              }
             ?>
		</table>
	</div>

</body>
</html>

后台菜单

<?php
  include 'public/session.php';
?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>left</title>
	<style>
		*{
			font-family: 黑体;
			text-decoration:none;
		}
		h4{
			cursor: pointer;/*光标形状是手指*/
			background:url(public/img/leader-bg.jpg) no-repeat center;
			width: auto;
			height: 25px;
			text-align: center;
			color:#fff;
			font-size: 14px;
			margin-top: 20px;
			padding-top: 6px;
		}

		h4:hover{
			color:#01afbe;
			background: #fff;
		}

		div{
			display: none;
		}

		p{
			padding-left:15px;
			text-align: center;
		}

		p a{
			color:#01afbe;
			font-size: 14px;
		}
	</style>
	<script src='public/js/jquery.js'></script>
</head>
<body>
	<h4>管理员管理</h4>
    <div>
    	<p><a href='./webmaster/index.php' target='right'>|-查看管理员</a></p>
    	<p><a href='./webmaster/add.php' target='right'>|-添加管理员</a></p>
    </div>
	<h4>用户管理</h4>
	<div>
		<p><a href='./user/index.php' target='right'>|-查看用户</a></p>
		<p><a href='./user/add.php' target='right'>|-添加用户</a></p>
	</div>
	<h4>分类管理</h4>
	<div>
		<p><a href='./class/index.php' target='right'>|-查看分类</a></p>
		<p><a href='./class/add.php' target='right'>|-添加分类</a></p>
	</div>
	<h4>图书管理</h4>
	<div>
		<p><a href='./book/index.php' target='right'>|-查看本站供书</a></p>
		<p><a href='./book/useroffer.php' target='right'>|-查看用户供书</a></p>
		<p><a href='./book/putaway.php' target='right'>|-查看上架图书</a></p>
		<p><a href='./book/soldout.php' target='right'>|-查看下架图书</a></p>
		<p><a href='./book/add.php' target='right'>|-添加图书           </a></p>
	</div>
	<h4>评论管理</h4>
	<div>
		<p><a href='./comment/index.php' target='right'>|-查看评论</a></p>
	</div>
	<h4>订单状态</h4>
	<div>
		<p><a href='./status/index.php' target='right'>|-查看状态</a></p>
		<p><a href='./status/add.php' target='right'>|-添加状态</a></p>
	</div>
	<h4>订单管理</h4>
	<div>
		<p><a href='./indent/index.php' target='right'>|-查看订单</a></p>
	</div>

	<h4>系统管理</h4>
	<div>
		<p><a href="logout.php" target='_top' onclick="return confirm('您确认要退出管理系统吗?')">|-退出系统</a></p>
		<p><a href="../index.html" target='_blank'>|-网站首页</a></p>
	</div>
</body>
<script>
$('h4').click(function(){
	$(this).next().toggle();   //toggle()方法:切换<p>元素的显示与隐藏
	$('div').not($(this).next()).hide();
});
</script>
</html>

右边工作区

<?php
  include 'public/session.php';
?>
<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>right</title>
	<style>
		*{
			font-family:"黑体";
		}
		body{
			padding:15px;
		}
	</style>

</head>
<body>
	<img src="public/img/welc.jpg" width="100%">
</body>
</html>

数据库的配置文件conn.php。

<?php
    mysql_connect('127.0.0.1','root','123456');
    mysql_query('set names utf8');
    mysql_select_db('qzss');
?>

配套资源

PHP-Mysql好运图书管理系统–【白嫖项目】
https://download.csdn.net/download/dearmite/88137223

作业:

把项目搭建起来,完成其它自己想到的功能。比如调用当当书城接口,比如说生成电子书,比如说将书里的内容做成面包,吃下即可掌握书里的知识。
只有魔法才能打败魔法!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/817451.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模型法在初中物理中的实例与应用

摘要&#xff1a;模型法是初中物理解题的重要方法&#xff0c;它的优点有方便快捷&#xff0c;易于理解等。文章通过列举模型法在初中物理解题时应用的例子&#xff0c;与模型法在学习与生活中的实际应用&#xff0c;说明了模型法可用性高&#xff0c;易于理解&#xff0c;能让…

UNIX网络编程卷一 学习笔记 第二十六章 线程

在传统UNIX模式中&#xff0c;当一个进程需要另一个实体完成某事时&#xff0c;它就fork一个子进程&#xff0c;并让子进程去执行处理&#xff0c;Unix上大多网络服务器程序就是这么写的。 这种范式多年来一直用得很好&#xff0c;但fork调用存在一些问题&#xff1a; 1.fork调…

揭秘电脑上的几大流氓软件,查看你的设备是否中招?

当我们使用电脑时&#xff0c;不可避免地会接触到各种软件。有些软件为我们提供了便利和安全保障&#xff0c;而另一些则隐藏着不良企图。这些被称为"流氓软件"的程序&#xff0c;可能给我们的电脑带来麻烦、干扰甚至威胁我们的数据安全。让我们一起盘点一下电脑上的…

基于Ko-time的Springboot单体化调用链追踪实践

目录 前言 一、关于Ko-Time 1、是什么&#xff1f; 2、ko-time更新时间线 二、Ko-time怎么用&#xff1f; 1、依赖引入 2、配置集成 3、权限放行 三、链路追踪 1、系统运行 2、链路追踪 3、长时间调用模拟 总结 前言 熟悉微服务的老司机一定了解&#xff0c;在微服务模…

Java - 多态的使用

多态 多态基本介绍 方法或对象具有多种形态。是面向对象的三大特征&#xff0c;多态是建立在封装和继承基础之上的。 多态的具体体现 1、方法的多态&#xff1a; 重写和重载就能体现多态。 2、对象的多态&#xff1a;【背下来&#xff0c;记住】 一个对象的编译类型和运行…

快应用编译前如何统一替换字符串

假设你有一个需求&#xff0c;要把代码里的ad-button替换为div&#xff0c;因为是mi看ad-button不爽。 这还不简单么&#xff0c;webpack有那么多成熟的plugins和loaders&#xff0c;本身我对webpack也只是略知一二&#xff0c;随便一搜网上的解决方案&#xff0c; string-re…

【Java基础教程】(五十)JDBC篇:JDBC概念及操作步骤、主要类与接口解析、批处理与事务处理~

Java基础教程之JDBC &#x1f539;本章学习目标1️⃣ JDBC概念2️⃣ 连接数据库3️⃣ Statement 接口3.1 数据更新操作3.2 数据查询 4️⃣ PreparedStatement 接口4.1 Statement 接口问题4.2 PreparedStatement操作 5️⃣ 批处理与事务处理&#x1f33e; 总结 &#x1f539;本…

C++学习day--16 野指针和空指针

1、什么是野指针&#xff1f; 野指针就是指向的位置是不可知的&#xff08;随机的、不正确的、没有明确限制的&#xff09; 造成野指针的原因&#xff1a; 1、指针未初始化 2、指针越界 3、指针指向的空间被释放 规避野指针的方法&#xff1a; 1. 指针初始化 2. 小心指针越界…

【数据分享】2000—2022年250米分辨率逐月归一化植被指数(NDVI)数据(免费获取/全国/分省/分市)

NDVI&#xff0c;全名为Normalized Difference Vegetation Index&#xff0c;中文名称为归一化植被指数。这个指数可以用来定性和定量评价植被覆盖及其生长活力&#xff0c;我们也可以简单地将它理解为体现植被密度和健康状况的一个指标。 之前我们给大家分享过来源于MOD13A3数…

嵌入式面试常见题目收藏(超总结)

​ 这篇文章来自很多博客主和其他网站的作者&#xff0c;如有侵权&#xff0c;联系必删 文章出处标注&#xff1a; https://blog.csdn.net/qq_44330858/article/details/128947083 ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** 1.…

AC+FIT(瘦AP)配置浅谈

FIT ensp实验材料 &#xff1a;pc、路由器、三层交换机、二层交换机、ac、ap 保证连通性&#xff1a; 根据ac与ap设计好的ip配置&#xff0c;使之可以通讯 ac与ap可以实现跨网段管理 1、设置三层交换机的vlan 与vlanif信息 dhcp enable //开启dhcp ip pool forap //…

Spring整合Mybatis、Spring整合JUnit

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Spring整合 一、Spring整合Mybatis1.1 整合Mybatis&#x…

链表刷题常用技巧——快慢指针

强大&#xff0c;不动如山的强大&#xff0c;不会输给自己的真正的强大。 往期回顾&#xff1a; 数据结构——单链表 单链表力扣刷题 文章目录 经典例题&#xff1a;链表的中间结点 题目分析及双指针思路引入 双指针图解 leetcode 核心代码 判断环形链表——快慢指针…

查看本地mysql账号密码

使用Navicat工具打开本地mysql&#xff0c;新建查询输入下面查询语句 SELECT user, authentication_string FROM mysql.user WHERE userroot将authentication_string 中的加密密码复制出来打开链接&#xff1a; Magic Data 5输入加密的密码&#xff0c;和验证码&#xff0c;点…

【目标检测】基于yolov5的水下垃圾检测(附代码和数据集,7684张图片)

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至;事虽难,做则必成。只要有愚公移山的志气、滴水穿石的毅力,脚踏实地,埋头苦干,积跬步以至千里,就…

HDFS Erasure coding-纠删码介绍和原理

HDFS Erasure coding-纠删码介绍和原理 三副本策略弊端Erasure Coding&#xff08;EC&#xff09;简介Reed- Solomon&#xff08;RS&#xff09;码 EC架构 三副本策略弊端 为了提供容错能力&#xff0c;hdfs回根据replication factor&#xff08;复制因子&#xff09;在不同的…

可视化——安装Manim软件——试错篇

Manim: 一个数学可视化的动画引擎 官网&#xff1a;https://3b1b.github.io/manim/index.html 名词解析 python3.7是python语言的解释器, 运行python程序的环境必备品. 这个没啥说的,大家都能懂. 虽然官方建议3.7,但是我用3.8发现也没问题.考虑未来的历史进程,大伙最好还是装…

使用web-view实现网页端和uni-app端是数据传输

要实现这个功能 第一步&#xff1a;要在vue的public文件夹下面引入 <script type"text/javascript" src"https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script> 第二步&#xff1a;建立一个新的空的uni-app项目…

EP4CE6E22C8N Error: Can‘t recognize silicon ID for device 1

经过各种排查&#xff0c;发现是AS配置不对&#xff0c;仅供参考 工程 参考某处的工程画板配置的FPGA板子&#xff0c;用于学习入门FPGA。 烧录sof文件是正常的&#xff0c;并能正常运行。 但是烧录jic是failed&#xff0c;查看报错为&#xff1a;Error: Can’t recognize si…

八大排序算法--冒泡排序(动图理解)

冒泡排序 算法思路 冒泡排序的原理是&#xff1a;从左到右&#xff0c;相邻元素进行比较。每次比较一轮&#xff0c;就会找到序列中最大的一个或最小的一个。这个数就会从序列的最右边冒出来。 以从小到大排序为例&#xff0c;第一轮比较后&#xff0c;所有数中最大的那个数就会…