python基于PHP+MySQL的药店药品进销存管理系统

news/2024/4/29 4:29:47/文章来源:https://blog.csdn.net/QQ177825331/article/details/127676887

随着科技的发展,针对不同疾病的药品越来越多,不同的药品有不同的属性,用法用量等内容,如何让药店和医药公司更好的对药品进行管理,是很多人都在研究的问题,本系统就是在这样的一个基础上开发出来的
PHP药店药品进销存管理系统通过PHp:MySQL进行开发,主要完成了药店基本信息的管理,药品信息的管理,药品进货管理,药品库存管理,药品销售管理等功能
请添加图片描述
药品信息管理界面
药店的管理人员可以对药品信息进行管理,在药品添加页面中输入对应的编号,名称,类别,图片,价格。库存等信息之后点击添加按钮,添加对应的药品信息到数据库中。

请添加图片描述
药品入库管理界面
当药店内的药品数量不足的时候,管理人员可对该药品信息进行入库处理。以防影响药品的销售。入库信息中输入药品的编号,名称,类别,数量,价格,厂商等信息之后点击添加按钮,添加入库信息到数据库中。

请添加图片描述
1;用户管理对用户数据进行添加删除等操作,本模块实现了管理员和普通登录系统的功能,是系统的第一个用户接口。通过管理员权限的区别来决定管理员进入的界面。普通用户可从本界面直接进入普通查询界面。添加管理员,完成添加普通管理员的操作,需要输入管理员账号,管理员密码。删除管理员,完成删除普通管理员的操作,需要输入管理员账号。修改管理员密码,完成修改普通管理员密码的操作,需要输入管理员账号。
2;药品入库完成药品的入库管理业务,先完成药品的信息添加,供货商信息的添加,然后完成药品的登记入库,功能分为填写入库单,删除入库单,添加药品,修改明细,删除药品,药品入库,退出。
3;药品出库完成药品的出库管理业务,先完成药品的信息添加,供货商信息的添加,然后完成药品的登记出库,功能有填写出库单,撤销提货单,修改提货单,提取药品,退出。
4;库存管理完成普通医务人员进行药品信息的简单查询业务,查询结果包括了药品的所有信息及库存量,可以根据入库单号,入库日期,药品名称,供应商号进行筛选查询,也可以直接全部查询。查询到需要的信息后可打印药品信息表。主要功能有查询,库存清理。
5;报警功能,若某一药物数量不在药物事先设定的数量的上下线中:某药物不合法:某药物有效期将到达货已过期。
6;退出系统。

<?php
error_reporting(E_ALL ^ E_NOTICE);$conn=@mysql_connect("localhost","root","root") or die("数据库链接失败".mysql_error());
mysql_select_db("daizu",$conn) or die("数据库链接失败".mysql_error());
mysql_query('set names utf8');//设置时区
date_default_timezone_set('asia/shanghai');
define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('File_ROOT', SYS_ROOT."/upload/");
define('IMG_ROOT', SYS_ROOT . "/upload/");@extract($_POST);
@extract($_GET);function getfirst($sql)
{$res=mysql_query($sql);$rows=mysql_fetch_array($res);return $rows;
}
//
function getcount($sql){$res=mysql_query($sql);return mysql_num_rows($res);
}
function get_name($id,$table)
{$sql="select * from $table where id='$id'";$rows=getfirst($sql);return $rows[name];
}
//遍历创建目录
function Remkdir($path) {if (!file_exists($path)) {Remkdir(dirname($path));@mkdir($path, 0777);}
}
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {$n = time().rand(1000,9999).'.jpg';$z = $_FILES[$inputname];if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {if (!$image) {Remkdir( IMG_ROOT . '/' . "{$type}/" );$image = "{$type}/{$n}";$path = IMG_ROOT . '/' . $image;} else {Remkdir( dirname(IMG_ROOT .'/' .$image) );$image = "{$type}/{$n}";$path = IMG_ROOT . '/' .$image;}
//echo $path ;move_uploaded_file($z['tmp_name'], $path);//echo $image;exit;return $image;}return $image;
}
//获取文件后缀名
function get_extend($file_name)
{
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
//文件上传实现function upload_file($inputname, $file=null)
{$year = date('Y'); $day = date('md');$z = $_FILES[$inputname];$file_ext=get_extend($z['name']);$n = time().rand(1000,9999).".".$file_ext;if ($z &&  $z['error']==0) {if (!$file) {Remkdir( File_ROOT . '/' . "{$day}" );$file = "{$day}/{$n}";$path = File_ROOT . '/' . $file;} else {Remkdir( File_ROOT . '/' . "{$day}" );$file = "{$day}/{$n}";$path = File_ROOT . '/' .$file;}
//echo $path ;move_uploaded_file($z['tmp_name'], $path);//echo $file;exit;return $file;}return $file;
}
//分页函数.
function get_pager($url, $param, $count, $page = 1, $size = 10)
{$size = intval($size);if($size < 1)$size = 10;$page = intval($page);if($page < 1)$page = 1;$count = intval($count);$page_count = $count > 0 ? intval(ceil($count / $size)) : 1;if ($page > $page_count)$page = $page_count;$page_prev  = ($page > 1) ? $page - 1 : 1;$page_next  = ($page < $page_count) ? $page + 1 : $page_count;$param_url = '?';foreach ($param as $key => $value)$param_url .= $key . '=' . $value . '&';$pager['url']        = $url;$pager['start']      = ($page-1) * $size;$pager['page']       = $page;$pager['size']       = $size;$pager['count']		 = $count;$pager['page_count'] = $page_count;if($page_count <= '1'){$pager['first'] = $pager['prev']  = $pager['next']  = $pager['last']  = '';}else{if($page == $page_count){$pager['first'] = $url . $param_url . 'page=1';$pager['prev']  = $url . $param_url . 'page=' . $page_prev;$pager['next']  = '';$pager['last']  = '';}elseif($page_prev == '1' && $page == '1'){$pager['first'] = '';$pager['prev']  = '';$pager['next']  = $url . $param_url . 'page=' . $page_next;$pager['last']  = $url . $param_url . 'page=' . $page_count;}else{$pager['first'] = $url . $param_url . 'page=1';$pager['prev']  = $url . $param_url . 'page=' . $page_prev;$pager['next']  = $url . $param_url . 'page=' . $page_next;$pager['last']  = $url . $param_url . 'page=' . $page_count;}}return $pager;
}
?>

目录
1 绪论 1
1.1课题背景 1
1.2课题研究现状 1
1.3初步设计方法与实施方案 2
1.4本文研究内容 2
2 系统开发环境 4
2.1 使用工具简介 4
2.2 环境配置 4
2.3 B/S结构简介 4
2.4 MySQL数据库 5
2.5 框架介绍 5
3 系统分析 6
3.1系统可行性分析 6
3.1.1经济可行性 6
3.1.2技术可行性 6
3.1.3运行可行性 6
3.2系统现状分析 6
3.3功能需求分析 7
3.4系统设计规则与运行环境 8
3.5系统流程分析 8
3.5.1操作流程 8
3.5.2添加信息流程 9
3.5.3删除信息流程 10
4 系统设计 11
4.1系统设计主要功能 11
4.2数据库设计 11
4.2.1数据库设计规范 11
4.2.2 E/R图 11
4.2.3数据表 12
5 系统实现 25
5.1系统功能模块 25
5.2后台模块 27
5.2.1管理员功能模块 27
5.2.2用户功能模块 30
6 系统测试 33
6.1功能测试 33
6.2可用性测试 33
6.3性能测试 34
6.4测试结果分析 34
7结 论 35
参考文献 36
致 谢 37

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

狂神说java基础——面向对象编程

面向对象编程(oop) 1、什么是面向对象(00)面向过程:线性思维 面向对象:分类思维​ 本质:以类的方式组织代码,以对象的形式阻止(封装)数据三大特性:封装,继承,多态2、回顾方法的定义 方法的定义修饰符 返回值类型/** 修饰符 返回值类型 方法名(...){* 方法体* re…

Dropzone V4.5.1 for Mac 文件拖拽工具使用教程

简介 Dropzone 是一款Mac上的文件拖拽操作增强工具&#xff0c;这款软件可以让我们把大部分工作都通过拖拽来完成&#xff0c;比如保存文本、发送邮件、FTP上传、打开应用等等&#xff0c;只需要将文件拖拽到菜单栏上的窗口中即可&#xff0c;并且我们完全可以定制化这些操作&a…

移动测试Appium安装

移动测试Appium安装 一、环境搭建 1.Java sdk安装 并配置JAVA_HOME和PATH 2.Android SDK安装 &#xff08;1&#xff09;解压 &#xff08;2&#xff09;配置ANDROID_HOME和PATH 见教程&#xff1a;AndroidSDK下载及安装 Android SDK 下载安装及配置 3.虚拟机安装 这里下载的…

UnityShader34:非真实感水体渲染

一、水体渲染方案 1.1 水体动画 既然是动画&#xff0c;必然推导公式会和时间相关联&#xff0c;如果不追求表现&#xff0c;可以使用最无脑的 sin 函数&#xff1a; 其中 y 值 振幅*sin(频率*(x值-相对偏移))&#xff0c;感觉目前手机端非真实感渲染的话感觉这一套就够了&a…

Centos下部署CodiMD

Centos下部署CodiMD安装docker安装docker-compose安装git部署CodiMDCodiMD是HackMD的自由软件版本&#xff0c;由HackMD团队开发并开源&#xff0c;具有简化功能&#xff08;无需书本模式&#xff09;&#xff0c;您可以在社区中使用CodiMD&#xff0c;并拥有所有数据。支持浏览…

数据可视化之对外经济发展,近五年我国对外货物进出口总额持续上涨

哈喽&#xff0c;大家好&#xff0c;2021年在疫情仍在冲击全球经济之际&#xff0c;我国不论是在贸易规模方面&#xff0c;还是在国际市场份额方面皆取得进展。 下面是小编对国家统计局最新发布的报告进行报表数据处理分析后得到的数据可视化图表&#xff0c;展示了2021年我国对…

齐活了,Grafana 发布大规模持续性能分析开源数据库 - Phlare

Grafana Phlare 是一个用于聚合 continuous profiling(持续分析)数据的开源软件项目。Grafana Phlare 可以和 Grafana 完全集成&#xff0c;允许你与其他可观察信号相关联。 什么是 continuous profiling? 这个概念很有价值&#xff1a;Profiling 可以帮助你了解程序的资源使…

正规现货黄金中的MACD技术

MACD是整个现货黄金交易平台上面最受投资者欢迎的技术指标&#xff0c;所以我们这次来谈谈&#xff0c;这个全球使用率最高的技术分析指标。 MACD 的全名为 Moving Average Convergence / Divergence &#xff0c;它是一种移动平均线的波动指标&#xff0c;不过它使用的不是普通…

mysql数据库中的插入数据insert,中文字符集配置

目录 关键字insert 常见错误类型 指定一列插入数据 多列同时插入 插入效率问题 全列查询select * 查看数据库字符集类型&#xff1a; 更改数据库字符集 C&#xff1a;create 新增D&#xff1a;update 修改R&#xff1a;retrieve 查询D&#xff1a;delete 删除进行增删查…

Redis客户端RedisTemplate入门学习

Redis的Java客户端 Jedis客户端入门 1.引入依赖 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.7.0</version></dependency>2.建立连接并操作 //建立连接BeforeEachvoid setUp()…

TIDB 性能测试(TIUP-TPCC)

New-Order&#xff1a;客户输入一笔新的订货交易&#xff1b; Payment: 更新客户账户余额以反映其支付状况; Delivery: 发货(模拟批处理交易); Order-Status: 查询客户最近交易的状态&#xff1b; Stock-Level: 查询仓库库存状况&#xff0c;以便能够及时补货。…

Android Studio入门之常用布局的讲解以及实战(附源码 超详细必看)(包括线性布局、权重布局、相对布局、网格布局、滚动视图 )

运行有问题或需要源码请点赞关注收藏后评论区留言 线性布局LinearLayout 顾名思义&#xff0c;线性布局像是用一根线把它的内部视图串起来&#xff0c;故而内部视图之间的排列顺序是固定的&#xff0c;要么从左到右&#xff0c;要么从上到下排列。通过属性android:orientation…

学完Python,不做程序员,只接兼职,哎,就是玩儿

现在这个时代&#xff0c;人人开始追求做斜杠青年&#xff0c;多方面开展副业&#xff0c;赚取几份工资。有很多朋友就抓住了Python的风口&#xff0c;靠着Python兼职月入一万。那么学完Python&#xff0c;有哪些可以做的兼职呢&#xff1f; 一、闲暇时间&#xff0c;接自由单…

DEFORMABLE DETR:用于端到端对象检测的可变形Transformer

论文&#xff1a;《DEFORMABLE DETR: DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION》 论文链接&#xff1a;https://arxiv.org/pdf/2010.04159.pdf 代码链接&#xff1a;https://github.com/fundamentalvision/Deformable-DETR 最近在目标检测领域提出了DETR&…

猿创征文|keil和Proteus使用教程

&#x1f4ac;推荐一款模拟面试、刷题神器 、从基础到大厂面试题&#xff1a;&#x1f449;点击跳转刷题网站进行注册学习 目录 一、keil的使用教程 1、新建一个项目 2、选择单片机型号 3、新建工程文件 二、Proteus的使用教程 1、新建一个工程 2、单片机型号及元器件的…

海藻酸钠-四嗪|TZ-PEG-alginate|海藻酸钠-peg-四嗪TZ

海藻酸钠-四嗪|TZ-PEG-alginate|海藻酸钠-peg-四嗪TZ 中文名称&#xff1a;海藻酸钠-聚乙二醇-四嗪 英文名称&#xff1a;TZ-PEG-alginate 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 外观:固体或粘性液体&#xff0c;取决于分子量 …

【Web-CSS基础】CSS的三大特性、定位方式、静态定位、相对定位、绝对定位、浮动定位、固定定位、设置缩放动画

目录 CSS的三大特性 定位方式 静态定位 相对定位 绝对定位(absolute) 固定定位 浮动定位 粘性定位(sticky) 定位总结 综合练习 效果展示 目录 CSS的三大特性 定位方式 静态定位 相对定位 绝对定位(absolute) 固定定位 浮动定位 粘性定位(sticky) 定位总…

高分辨空间代谢组学测试的样品要求以及常见问题

高分辨空间代谢组学可实现定量检测&#xff0c;亦可定性检测&#xff0c;且可一次可同时检出多种类型的化合物&#xff0c;包括脂类、小分子代谢物、蛋白质、药物及其载体等&#xff0c;并且能够呈现出这些物质的空间分布情况。高分辨空间代谢组学测试的样品要求&#xff1a; …

五高引动三层需求 华为全屋智能3.0引领智能家居新进化

昨天,华为全屋智能3.0发布。从2020年11月发布全屋智能开始,华为不断迭代产品和体验,是全屋智能快速进化的主要推动者之一。这一次华为全屋智能3.0带来“高可靠、高掌控、高感官、高心意、高智能”的五高理念,更清晰定义了全屋智能,或者说空间智能该有的样子,这也将引领产…

GitHub榜一竟是Alibaba内部被疯狂转载的Spring全能指南?

spring相信大家都不会陌生! Spring 是目前主流的 Java Web 开发框架&#xff0c;是 Java 世界上最为成功的框架。该框架是一个轻量级的开源框架&#xff0c;具有很高的凝聚力和吸引力。 Spring 由 Rod Johnson 创立&#xff0c;2004 年发布了 Spring 框架的第一版&#xff0c;其…