![PHP项目开发全程实录(第4版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/587/24172587/b_24172587.jpg)
1.12 付费信息管理模块设计
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P49_10038.jpg?sign=1739410335-SFqeHJtVIEwmp2HpLMzUK1VeBDvPmKQo-0-980a2a25547cbe14a8b2857a761fa623)
视频讲解
1.12.1 付费信息管理模块概述
付费信息管理模块主要包括付费信息列表、付费信息审核和付费信息删除等3个功能,其框架如图1.39所示。
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P50_40779.jpg?sign=1739410335-EcBb3n0FSahXhpfbFky4tbIMh4FFolVp-0-dd87d2b41aef9fc07c0a38454d0fc2ce)
图1.39 付费信息管理模块的框架图
1.12.2 付费信息管理模块技术分析
付费信息管理页面在实现信息审核及删除的功能时应用到了UPDATE更新语句和DELETE删除语句。下面对这两个语句进行详细的讲解。
1.UPDATE语句
UPDATE语句用来改变单行上的一列或多列的值,或者改变单个表中选定的一些行上的多个列值。UPDATE语句的语法如下:
UPDATE<table_name | view_name> SET <column_name>=<expression> […,<last column_name>=<last expression>] [WHERE<search_condition>]
UPDATE语句的参数说明如表1.14所示。
表1.14 UPDATE语句的参数说明
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-T50_10227.jpg?sign=1739410335-vawIPH4K9WIZPJQ59fBjd7NVfUxBgx0u-0-00d2ac9bb4e03e94f679cb89f86f8bad)
注意
一定要确保不要忽略WHERE子句,除非想要更新表中的所有行。
下面应用UPDATE语句将指定职员的工资进行调整,例如,将“小璇”的基本工资由2600元修改为3000元。其SQL语句如下:
update tab_laborage set jbgz=3000 where name='小璇'
2.DELETE语句
DELETE语句实现删除数据记录。DELETE语句的语法如下:
DELETE FROM <table_name > [WHERE<search-condition>]
DELETE语句的参数说明如表1.15所示。
表1.15 DELETE语句的参数说明
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-T51_40786.jpg?sign=1739410335-EfLTY3oCo90G7QgF25ZiBLi2uBNBTsdL-0-3f365413639f81f94b8424c11fe25dee)
下面应用DELETE语句删除“职员姓名=小璇”的员工基本信息。其SQL语句如下:
DELETE tab_staffer WHERE ygname='小璇'
1.12.3 付费信息显示的实现过程
付费信息显示页面使用的数据表:tb_leaguerinfo
管理员在后台功能导航区的“付费信息显示方式”栏中选择相应的信息类别,然后按“已付费”、“未付费”或“全部”中的任意一种状态对付费信息进行管理。例如,在“信息类别”下拉列表框中选择“公寓信息”,在“付费状态”选项组中选中“未付费”单选按钮,单击“检索”按钮提交表单,程序将按指定条件显示出符合条件的所有信息,运行结果如图1.40所示。
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P52_10339.jpg?sign=1739410335-tJyDnDwEsoiS2sHOtCrpv0H5zCZ3n1Ij-0-2b68fe3e76c1dd42e8c9494e4d258b74)
图1.40 付费信息显示页面的运行结果
本系统提供了一组单选按钮组成的“付费状态”选项组,分为已付费、未付费和全部3个选项。选中“未付费”单选按钮,则传递的值为0;选中“已付费”单选按钮,则传递的值为1;选中“全部”单选按钮,则传递的值为all。还提供了一个下拉列表框,供用户选择信息类别。将这些单选按钮与下拉列表框都在一个表单中实现,这样,当单击“检索”按钮提交表单后,选择的状态会通过表单进行传递。其表单代码如下:
例程15 代码位置:资源包\TM\01\cityinfo\admin\left.php
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P52_40790.jpg?sign=1739410335-EbQDmGZqSxbO2arsG6wE8CL1mIAbx7Ag-0-14b21937e757cd24ee1f46b2b57a04a8)
代码贴士
❶target = "mainFrame":指定链接的目标窗口,mainFrame为内容显示区的框架名称。另外,target有4个选项值,分别介绍如下。
_blank:指定将链接的目标文件加载到未命名的新浏览器窗口中。
_parent:指定将链接的目标文件加载到包含链接的父框架页或窗口中,如果包含链接的框不是嵌套的,则链接的目标文件加载到整个浏览器窗口中。
_self:指定将链接的目标文件加载到链接所在的同一框架或窗口中。
_top:指定将链接的目标文件加载到整个浏览器窗口中,并由此删除所有框架。
❷<fieldset><legend>…</legend></fieldset>标签:在字符集包含的文本和其他元素外面绘制一个方框。该元素是块元素,必须成对出现。需要注意的是,fieldset必须用在form表单中,一个表单可以有多个<fieldset>…</fieldset>,每对<fieldset>…</fieldset>为一组,每组的内容描述使用<legend>设置标题名称。
提交表单信息到find_fufei.php页,程序将按管理员选择的指定条件显示出符合条件的所有信息。如果管理员选中“全部”单选按钮,那么系统的代码如下:
例程16 代码位置:资源包\TM\01\cityinfo\admin\find_fufei.php
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P53_40792.jpg?sign=1739410335-8u4pCtXZzIjpAO2XBCQ8FlwdkF9sQHvb-0-8153fc7ab5202e60fce73a977de19d3f)
说明
限于篇幅,上面代码中省略了分页显示的代码部分,具体参见本书附赠资源包。
1.12.4 付费信息审核的实现过程
付费信息审核使用的数据表:tb_leaguerinfo
经过审核的信息说明该信息为已付款信息。如果企业或个人用户已登录供求信息但未直接付费,想要后期付款,那么管理员进行审核时,信息不能通过,要求必须进行付款,经过审核的信息才能在前台进行显示。“审核”超链接的代码如下:
例程17 代码位置:资源包\TM\01\cityinfo\admin\find_fufei.php
<a href="statefu_ok.php?id=<?php echo $info['id'];?>&type=<?php echo $type;?>&state=<?php echo $state;?>"> 审核</a>
管理员单击对应主题信息后面的“审核”超链接,将信息所对应的id值、信息类型及审核状态传递到数据处理页statefu_ok.php,用UPDATE语句将付费状态设置为1,说明该信息已经付款。数据处理页的代码如下:
例程18 代码位置:资源包\TM\01\cityinfo\admin\statefu_ok.php
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P54_40800.jpg?sign=1739410335-Ya8ymWK7eLf1O3flUN2tWcotTXgCS7r0-0-7e2f00c1ceec67fd3d127a10e6a2f236)
代码贴士
❶update…set:用来修改指定表中的数据。UPDATE语句的使用方法参见1.12.2节。
❷type=$type&state=$state:将变量type与state的值重新传到find_fufei.php页,目的是为了使find_fufei.php页中的$type和$state变量重新获得信息类型和付费状态值(管理员选择的检索条件),从而返回到付费信息管理页,并更新数据信息。如果数据处理页不对这两个变量进行传值,那么在返回到付费信息管理页find_fufei.php时将会因为检索不到变量的值而出错。
1.12.5 付费信息删除的实现过程
付费信息删除使用的数据表:tb_leaguerinfo
付费信息管理页中“删除”超链接的代码如下:
例程19 代码位置:资源包\TM\01\cityinfo\admin\find_fufei.php
<a href="fudel_ok.php?id=<?php echo $info['id'];?>&type=<?php echo $type;?>&state=<?php echo $state;?>"> 删除</a>
管理员单击对应主题信息后面的“删除”超链接,将信息所对应的id值、信息类型及审核状态传递到数据处理页fudel_ok.php,用DELETE语句将id指定的供求信息删除。数据处理页的代码如下:
例程20 代码位置:资源包\TM\01\cityinfo\admin\fudel_ok.php
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P55_40806.jpg?sign=1739410335-FjVpcCccoP3n1GgMHGQ425g5nmA4e3zc-0-eb370d8af59ce9a70668ddf598cb877c)
注意
在删除数据后,仍需要将变量$type和$state的值重新传递给付费信息管理页find_fufei.php,目的是返回到付费信息管理页,查看执行删除操作后的状态。
1.12.6 单元测试
在开发完管理员模块后,对该模块进行单元测试。当管理员对付费供求信息进行审核后,审核操作成功,但却弹出如图1.41所示的错误提示。
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P56_40808.jpg?sign=1739410335-q29ophDO1Ah71FItYfjjyPvzr8CDVcgF-0-dfa1c2daf063d307cceed980c536375a)
图1.41 审核付费供求信息的错误提示
在图1.41中的错误提示中可以看出,在付费信息管理页的第8行、第9行、第16行和第37行出现问题。下面看一下出现问题的这几行代码:
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P56_40809.jpg?sign=1739410335-DPO3ni5SJWTSgvb3tl9yI8YsoBwA9Cy9-0-f9c9d6a78ad04c607620fa84f604e5bd)
从代码中可以看出,SQL语句的书写并没有错误。根据图1.41所示页面的结果,当前信息类别为空,则说明管理员选择的信息类别没有传过来值。由此可以看出,这是由于在执行审核后页面重新刷新了,因此检索不到管理员选定的查询条件值。
“审核”超链接的源代码如下:
例程21 代码位置:资源包\TM\01\cityinfo\admin\find_fufei.php
<a href="statefu_ok.php?id=<?php echo $info['id'];?>">审核</a>
审核处理页的源代码如下:
例程22 代码位置:资源包\TM\01\cityinfo\admin\statefu_ok.php
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P57_40812.jpg?sign=1739410335-JihK6P94qpT0iizI3i6oG6tOzgkqARj7-0-582734d4151c401e12b2760b8427d70d)
解决该问题的方法需要在“审核”超链接传值时将管理员选定的“信息类型”和“审核状态”的变量值一同传递到数据处理页,当审核操作完成后,再将“信息类型”和“审核状态”的变量值重新传递给付费信息管理页find_fufei.php即可。
“审核”超链接修改后的代码(加粗的代码部分为修改的代码部分)如下:
例程23 代码位置:资源包\TM\01\cityinfo\admin\find_fufei.php
<a href="statefu_ok.php?id=<?php echo $info['id'];?>&type=<?php echo $type;?>&state=<?php echo $state;?>"> 审核</a>
技巧
在传递多个变量时,变量之间用“&”符号分隔。
管理员单击对应主题信息后面的“审核”超链接,将信息所对应的id值、信息类型及审核状态传递到数据处理页statefu_ok.php。在执行完更新操作后,需要将“信息类型”和“审核状态”的变量值重新传递到付费信息管理页find_fufei.php,加粗的代码部分为修改的代码部分。
例程24 代码位置:资源包\TM\01\cityinfo\admin\statefu_ok.php
![](https://epubservercos.yuewen.com/614B35/13043251803826006/epubprivate/OEBPS/Images/Figure-P57_40818.jpg?sign=1739410335-Tt4ofv6hSk4fARwMbbRDLTdjEs01XVLU-0-ab469cd2a475c27e90f80c0afe24e6e2)