日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

简易验收管理系统的设计(php)

發布時間:2023/12/20 php 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简易验收管理系统的设计(php) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

時間 2019年7月29日
項目名:網絡實現驗收報表的生成
項目需求:員工手機上傳圖片到服務器,管理員導出項目生成報表打印,減少人工搜集圖片的時間。管理員實現用戶的增刪改查,項目的導入導出以及普通用戶的上傳。

準備

安裝軟件:
1.mysql8
2. Navicat for MySQL11:這個數據庫軟件挺好用的;
3. phpstudy_pro:php集成環境,有這個不用自己搭建php環境;
4. phpstrom:感覺滿強大的php編輯軟件
5. layui框架:推薦一個別人改的layui模板
6. XMind:做思維導圖(可有可無);
7. Xshell6;終端模擬軟件,可以連接服務器,以便查看修改。
8. FileZilla:FTP軟件,Xshell6也可以連FTP,但是有些功能實現不了。

思維導圖


(思維導圖這個…好久沒有改了,可有可無,好吧)

目錄

  • 簡介
    • 準備
    • 思維導圖
      • 登陸界面
        • 調用layui框架
        • 拷貝html代碼
        • 拷貝php代碼
          • 數據庫連接配置config.php
          • php登陸代碼(殘缺)
      • 主界面
        • 貼html代碼
      • 項目展示
        • 項目的查
        • 項目的改
        • 項目的增
        • 項目的刪
        • 項目的分頁
      • 項目內信息
        • 負責人管理
        • 項目信息導入
        • 項目信息導出
      • 普通用戶界面
        • 普通用戶項目信息界面
      • 上傳服務器
      • 總結

登陸界面

(登陸界面還需要優化,交給后來人吧233)

調用layui框架

//根據實際改 <link rel="stylesheet" href="../static/layui/css/layui.css"> <script type="text/javascript" src="../static/layui/layui.js"></script><script>//調用layui的formlayui.use('form',function(){var $ = layui.$,form = layui.form,router = layui.router(),search = router.search;//更新渲染 刷新界面 所有元素form.render();}); </script>

拷貝html代碼

//根據實際改 <form class="layadmin-user-login layadmin-user-display-show" method="post"><div class="layadmin-user-login-main"><!--登陸--><div class="layadmin-user-login-box layadmin-user-login-header"><!--logo 名稱--><img src="img/yd.png"><p>項目驗收系統</p></div><div class="layadmin-user-login-box layadmin-user-login-body layui-form" style="padding: 28px;"><!--登陸界面--><div class="layui-form-item"><label class="layadmin-user-login-icon layui-icon layui-icon-username"></label><!--png--><input type="text" name="username" required lay-verify="required" placeholder="請輸入用戶名" autocomplete="off" class="layui-input"></div><div class="layui-form-item"><label class="layadmin-user-login-icon layui-icon layui-icon-password"></label><input type="password" name="password" required lay-verify="required" placeholder="請輸入密碼" autocomplete="off" class="layui-input"></div><div class="layui-form-item" style="color: #969696;"><input type="radio" name="sf" value="0" title="管理員"><div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon"></i><div>管理員</div></div><input type="radio" name="sf" value="1" title="用戶" checked><div class="layui-unselect layui-form-radio"><i class="layui-anim layui-icon "></i><div>用戶</div></div></div><div class="layui-form-item"><input type='submit'value='登陸' class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit"/></div></div></div><div class="layui-trans layadmin-user-login-footer"><!--底部版權信息--><p>版權所有:XXXX有限公司?備案號: <a href="http://beian.miit.gov.cn">蜀ICP備XXXXX號-1</a></p></div> </form>

拷貝php代碼

數據庫連接配置config.php
<?php //數據庫連接 function sql() {//php有很多報錯,用這個隱藏報錯,建議后期用,以便查看報錯內容error_reporting(0);//host:localhost,user:root,passwod:root$link = mysqli_connect('127.0.0.1', 'root', 'root');mysqli_set_charset($link, 'utf8');//連接數據庫庫名mysqli_select_db($link, 'one');return $link; } ?>

mysqli_connect詳解:php還有幾種連接數據庫的方法,來不及解釋了百度吧。
我詳解一下mysqli_connect中的host:
1.想連本機數據庫可以寫127.0.0.1;
2.想連接服務器數據庫填寫數據庫ip;
3.想連接虛擬主機數據庫,虛擬主機有內網外網兩連接;(項目放到虛擬主機上用內網連接,其他的就外網連接)

php登陸代碼(殘缺)
<?php //調用config.php include('config.php'); //$_POST獲取表單提交的各個數據 //添加@防止php報錯 @$name=$_POST["username"]; @$pwd=$_POST["password"]; @$sf=$_POST["sf"];if($sf==0){//調用sql()方法$link=sql();//sql查詢語句$sql="select pwd from ys_user where username='$name' and pwd='$pwd' and quanX='$sf'";$result=mysqli_query($link,$sql);//執行$re=mysqli_fetch_array($result);//根據執行結果返回不同界面if($re){echo "<script>window.location.href='adminindex.php? sf=$sf&name=$name;'</script>";}else{echo "<script >alert('登陸失敗');</script>";} } ?>

php寫的糙,就放核心的代碼吧(沒辦法我是寫java的)
我記得學jsp 的時候用Java的mvc三層架構來,可以實現在登陸界面返回錯誤信息,比如賬號輸入錯誤,密碼不正確,身份錯誤等,這個項目做的菜,所以沒有這些功能(官方吐槽)
這個地方還有一大槽點:

這個主要是沒有前后端分離,懶得改了

主界面


用iframe實現網頁的內嵌和預載

貼html代碼

<!doctype html> <html lang="en"> <head><meta charset="UTF-8"><title>毅達廣告項目驗收系統</title><meta name="renderer" content="webkit|ie-comp|ie-stand"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" /><meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="stylesheet" href="./css/font.css"><link rel="stylesheet" href="./css/xadmin.css"><script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><script src="./lib/layui/layui.js" charset="utf-8"></script><script type="text/javascript" src="./js/xadmin.js"></script></head> <body id='sub' style='display:none'><!-- 頂部開始 --><div class="container"><div class="logo"><a href="#">毅達廣告</a></div><div class="left_open"><i title="展開左側欄" class="iconfont">&#xe60f;</i></div><div class="left_open"><a id="SX" class="" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新"><i class="layui-icon" style="margin-top: 5px;margin-left: 10px;">?</i></a></div><ul class="layui-nav right" lay-filter=""><li class="layui-nav-item"><a href="javascript:;" id="UserName">admin</a></li><li class="layui-nav-item to-index"><a href="login.php">退出</a></li></ul></div><!-- 頂部結束 --><!-- 中部開始 --><!-- 左側菜單開始 --><div class="left-nav"><div id="side-nav"><ul id="nav"><li><a href="javascript:;"><i class="iconfont">&#xe6b8;</i><cite>管理</cite><i class="iconfont nav_right">&#xe697;</i></a><ul class="sub-menu"><li><a _href="project/project_manage.php"><i class="iconfont">&#xe6a7;</i><cite>項目管理</cite></a></li ><li><a _href="people/people_manage.php"><i class="iconfont">&#xe6a7;</i><cite>人員管理</cite></a></li></ul></li><li><a href="javascript:;"><i class="iconfont">&#xe723;</i><cite>項目</cite><i class="iconfont nav_right">&#xe697;</i></a><ul class="sub-menu"><li><a _href="people/people_xm.php"><i class="iconfont">&#xe6a7;</i><cite>負責項目</cite></a></li ></ul></li></ul></div></div><!-- 左側菜單結束 --><!-- 右側主體開始 --><div class="page-content"><div class="layui-tab tab" lay-filter="xbs_tab" lay-allowclose="false"><ul class="layui-tab-title"><li>項目管理</li></ul><div class="layui-tab-content"><div class="layui-tab-item layui-show"><iframe src='./project/project_manage.php' frameborder="0" scrolling="yes" class="x-iframe"></iframe></div></div></div></div><div class="page-content-bg"></div><!-- 右側主體結束 --><!-- 中部結束 --><!-- 底部開始 --><div class="footer"><div class="copyright" style="color: white;text-align: center;">版權所有:XXXX有限公司?備案號:<a href="http://beian.miit.gov.cn" style="color: white">蜀ICP備XXXXX號-1</a></div></div> </body> <script>window.onload=function(){//獲取url數據var jxurl = document.location.toString();var vars = jxurl.split("&");var jxsf = vars[0].split("=");if(jxsf[1]==0){var jxname = (vars[1].split("="))[1].split(";");document.getElementById("sub").style = "display:block";$("#UserName").html(jxname[0]);}else{alert('無權限訪問');window.location.href='login.php';}}</script> </html>

emmm詳解一下js部分,其他的都應該看的懂,都是拷貝的
document.location.toString() :獲取當前網頁的鏈接
split() :一個字符串分割成字符串數組
split("&"):把&前后的字符串分割成數組

項目展示

該頁面需求:項目的增刪改查、分頁
(界面請看主界面的圖片)

項目的查

<form method='post'><input type='text' name='txt'placeholder="請輸入項目名" ><input type='submit' value='查找'> </form> <?php if($_POST) {@$txt=$_POST["txt"]; } //模糊查詢$txt 表名:project_table 模糊查詢內容:pro_name $sql="select * from `project_table`pro_name where pro_name like '%$txt%'"; $link=sql(); $result=mysqli_query($link,$sql); //循環輸出查詢到的內容 while($pro=mysqli_fetch_array($result)){echo "<tr><td>".$pro['id']."</td></tr> <tr><td class='td-manage'><a title='查看'><i class='layui-icon' οnclick='openxm(".$pro['pro_id'].")'></i></a><a title='編輯' οnclick='show_updateXm(".$pro['pro_id'].")'><i class='layui-icon'></i></a><a title='刪除' οnclick='delxm(".$pro['pro_id'].")' href='javascript:;'><i class='layui-icon'></i></a></td> </tr>"; } ?>

emmm沒錯這個項目最大的槽點就是,我和W沒有寫servlet類,所有的表單提交都是提交到本頁,利用< input type=‘hidden’ name=‘form’ value=’’ />根據不同的value來判斷表單提交的內容

項目的改

<?php $link=sql(); //查詢 project_table中pro_id值所在的內容 $sql="select * from `project_table` where pro_id=$update_id"; $result=mysqli_query($link,$sql); while($up=mysqli_fetch_array($result)){?> <tr><td><input type='number' value='<?php echo $up['id'];?>' required></td> </tr> <?php}?>

項目的增

<?php $link=sql(); //查詢項目編號是否重復 $sql="select * from `project_table`where pro_id=$pro_id"; $result=mysqli_query($link,$sql); $rows=mysqli_num_rows($result); //$res會用到 $path="../img/sc/$pro_id"; //$rows返回查詢到數據的條數 if($rows!=0) { echo "<script>alert('不能使用重復的項目編號!');</script>"; } else { //當添加項目的時候,創建一個該項目id名的文件夾,存放該項目的圖片 0777為最大權限 $res=mkdir(iconv("UTF-8", "GBK", $path),0777,true); $sql="insert into project_table(pro_id,pro_name,startTime,overTime,CompanyNameA,CompanyNameB) values ('$pro_id','$pro_name','$startTime','$overTime','$jia_company','$yi_company')"; $result=mysqli_query($link,$sql); echo "<script>alert('添加成功');</script>"; //返回該頁面 echo "<script>window.location.href=window.location.href;</script>"; } ?> <form method="post"><input type='hidden' name='form' value='2' /><input type='number'/>//... </form>

項目的刪

<?php //刪除各各表中的項目信息 $sql="delete from project_table where pro_id='$pro_id'"; $result=mysqli_query($link,$sql); $sql="delete from projectxq where pro_id='$pro_id'"; $result=mysqli_query($link,$sql); $sql="delete from principal_table where pro_id='$pro_id'"; $result=mysqli_query($link,$sql); //設置需要刪除的文件夾 $path="../img/sc/$pro_id/"; if(is_dir("$path")) {//清空文件夾函數和清空文件夾后刪除空文件夾函數的處理function deldir($path){//如果是目錄則繼續if(is_dir($path)){//掃描一個文件夾內的所有文件夾和文件并返回數組$p = scandir($path);foreach($p as $val){//排除目錄中的.和..if($val !="." && $val !=".."){//如果是目錄則遞歸子目錄,繼續操作if(is_dir($path.$val)){//子目錄中操作刪除文件夾和文件deldir($path.$val.'/');//目錄清空后刪除空文件夾@rmdir($path.$val.'/');}else{//如果是文件直接刪除unlink($path.$val);}}}}rmdir("$path");}//調用函數,傳入路徑deldir($path); } echo "<script>alert('刪除成功');</script>"; echo "<script>window.location.href=window.location.href; </script>"; }?>

文件刪除在網上找的 php刪除一個路徑下的所有文件夾和文件的方法

項目的分頁

<?php $sql="select * from `ys_project_table`pro_name where pro_name like '%$txt%'"; $link=sql(); $result=mysqli_query($link,$sql); //獲取行數 $rows=mysqli_num_rows($result); //每頁顯示最大行數 $pagesize=10; //總共頁數 $pages; $page=1; if($_GET){//當前頁數$mypage=$_GET['page']; } else{$mypage=1; } $i=0; $pages=intval(($rows+$pagesize-1)/$pagesize); if($rows==0) {$pages=0; } while($pro=mysqli_fetch_array($result)) {$i++;if($i<=($pagesize*$mypage)){if($i>$pagesize*($mypage-1)){echo " 分頁顯示內容 ";}} }?> <?php echo " <div class='page'><div><a class='prev ' href='project_manage.php?page=".$page."&txt=".$txt."' class='prev'>&lt;&lt;</a>"; echo " <a class='prev ' href='project_manage.php?page=".($mypage>1?$mypage-1:1)."&txt=".$txt."' class='prev'>&lt;</a>"; if($mypage>=3){echo "<a class='prev' href='project_manage.php?page=".($mypage-2)."&txt=".$txt."'>".($mypage-2)."</a>"; } if($mypage>=2){echo "<a class='prev' href='project_manage.php?page=".($mypage-1)."&txt=".$txt."'>".($mypage-1)."</a>"; } echo "<span class='current'>".($mypage)."</span>"; if($pages!=1){if($mypage<($pages-1)){echo "<a class='prev' href='project_manage.php?page=".($mypage+1)."&txt=".$txt."'>".($mypage+1)."</a>";}if($mypage<=($pages-2)){echo "<a class='prev' href='project_manage.php?page=".($mypage+2)."&txt=".$txt."'>".($mypage+2)."</a>";}} echo "<a class='next ' href='project_manage.php?page=".($mypage<$pages?$mypage+1:$pages)."&txt=".$txt."' class='prev'>&gt;</a>"; echo "<a class='next ' href='project_manage.php?page=".$pages."&txt=".$txt."' class='prev'>&gt;&gt;</a></div></div>"; ?>

emmm這里有點亂主要是herf要傳的傳的參數有點多,然后,用了layui框架,我把他寫在了php里(可以不寫在php里)

項目內信息


上圖,查找沒有改樣式(懶)
這個界面顯示的是某個項目里的信息,需求:該項目要有負責人(多個),實現項目數據導入,項目導出和項目信息的增刪改查

負責人管理


本來這里想弄一個layui框架的穿梭框,但是W傳數據的時候不知道怎么寫,所以放棄了
這里的思路:總人員列表顯示user用戶表中所有普通用戶的信息,選中后添加到一個負責人表上,負責人表上有項目表中該項目的id和人員表中該普通用戶的id,name,從而實現表的多對多。

項目信息導入

這里是抄別人如何使用JavaScript實現純前端讀取和導出excel文件
這里貼上基于拷貝的代碼,把excel數據存儲為二維數組或者json數據

<script> //聲明一個全局變量 var ToJson; function readWorkbook(workbook) {var sheetNames = workbook.SheetNames; // 工作表名稱集合var worksheet = workbook.Sheets[sheetNames[0]]; // 這里我們只讀取第一張sheetvar csv = XLSX.utils.sheet_to_csv(worksheet);//轉化為json數據簡單只要添加下面這個就行了ToJson = XLSX.utils.sheet_to_json(worksheet);document.getElementById('result').innerHTML = csv2table(csv); } //先聲明一維 var jsonData = new Array(); function csv2json(csv) {var csvh=[];//存儲每行var rows = csv.split('\n');rows.pop();//最后一行沒用的for (i=0;i<rows.length ;i++ ){//存儲每行數據csvh[i]=rows[i];}for (i=0;i<rows.length ;i++ ){//存儲的每個數據var columns = csvh[i].split(',');jsonData[i]=new Array(i); //在聲明二維for(j=0;j<columns.length;j++){jsonData[i][j]=columns[j];}}return jsonData; } </script>

php傳入數據庫不太懂,W寫的

//獲取json傳入數據庫 @$data=json_decode($_POST["data"],true); @$pro_id=$_POST['pro_id']; $size=sizeof($data); $count=0; $link=sql(); for($i=0;$i<$size;$i++){$sql="select * from projectxq where pro_id='$pro_id' and data_id='".$data[$i]["編號"]."'";$result=mysqli_query($link,$sql);if(mysqli_num_rows($result)==0){$sql="insert into ys_projectxq (pro_id,data_id,district,xiaoqu_name,site,quantity,price) values ('$pro_id','".$data[$i]["編號"]."','".$data[$i]["片區"]."','".$data[$i]["小區"]."','".$data[$i]["位置"]."','".$data[$i]["數量"]."','".$data[$i]["價格"]."')";$result=mysqli_query($link,$sql);$count++;} } $x=array($size,$count); echo json_encode($x,true);

項目信息導入中有一個下載模板

<a class="layui-btn" href="../img/moban.xlsx" download="moban.xlsx">下載模板</a>

項目信息導出


生成驗收報告導出
思路:新建個界面打開(target="_blank"),驗收報告

<a href="export.php? pro_id=1" target="_blank" class="ztdx"> 生成驗收報告</a>

然后右鍵打印中可以導出pdf格式(這個方法有點取巧,但是如果導出word格式的話圖片大小、頁面大小等都控制不了,搞這個百度了一天都沒有搞出來,所以出此下策)

普通用戶界面

管理員界面還有用戶管理界面(實現用戶的增刪改查)普通用戶的項目界面,這里有一個不同點,就是當項目進度是完成狀態是不顯示在普通用戶的項目展示上,而且該項目中有該負責人才展示,所以sql寫了很長。
···php

$sql="select * from project_table inner join principal_table on project_table.pro_id=principal_table.pro_id where principal_table.principal='$name'and schedule=0 ";

用了多表查詢 schedule=0是指進度為未完成

普通用戶項目信息界面


該界面需要實現,點擊圖片彈出上傳圖片提示,進行圖片上傳(頭發又禿了)
點擊查看,彈出圖片。
遇到好多問題:
點擊圖片上傳后,沒有改變圖片(這個好解決,但是懶)
點擊提交后,它會刷新界面??然后參數丟失出現bug(我強行加了js,實現跳轉會該界面,上傳后會跳轉兩下,用戶體驗差)
借鑒:php上傳圖片、layui彈框

大概就講這么多吧,項目下載覺得想看我和W寫的亂七八糟的代碼的可以去下載(https://download.csdn.net/download/qq_32719309/11578952)

上傳服務器

xshell 6安裝上傳插件 yum install lrzsz
然后rz上傳

php環境搭建

Php項目部署:/var/www/html

上傳文件限制解決:一般上傳都被限制在2MB以內

修改后 service httpd restart 重啟服務
(還要給某些腳本權限)
腳本權限:chmod a+x(創建和刪除文件夾的php)
文件夾權限:chmod a+w(上傳圖片的文件夾)

FileZilla就簡單點,安裝后鏈接好了,所有操作都是鼠標點就行了

總結

接手第一個小項目,垃圾點正常
卑微java在線乞討

總結

以上是生活随笔為你收集整理的简易验收管理系统的设计(php)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。