基于PHP与MySQL的投票系统设计.doc
《基于PHP与MySQL的投票系统设计.doc》由会员分享,可在线阅读,更多相关《基于PHP与MySQL的投票系统设计.doc(42页珍藏版)》请在三一办公上搜索。
1、网站建设与设计期末考核网站设计说明书网站名称 基于PHP与MySQL的投票系统 学院_班级_学号_姓名_2013年6月18日目 录1系 统 分 析21.1 系统背景21.2 系统模块分析21.3 系统流程图32数据库设计33数据库配置53.1 配置文件config.inc.php53.2 数据操作文件db.inc.php54投票管理模块84.1 调查类文件vote.inc.php84.2 调查列表文件VoteList.php124.3 添加调查文件AddVote.php134.4 编辑调查文件EditVote.php194.5 删除调查文件DelVote.php234.6 调查选项列表文件It
2、emList.php244.7 添加、编辑调查选项文件OperItem.php254.8 选项顺序设置文件SetOrder.php274.9 删除调查选项文件DelItem.php294.10 用户统计信息列表文件UserList.php304.11 区域统计文件AreaList.php315调查显示模块346投票处理模块357调查结果显示模块378设计体会与总结391系 统 分 析投票系统是一般网站常用的一种系统。它是一种在网站上提出调查题目,由用户在线投票并对调查投票的统计结果直接显示的调查工具。网站可以通过投票系统统计的数据来了解用户对一些热点问题的看法。通常可以用投票系统来了解用户对网
3、站的态度,对网站服务的评价或对网站新推出的新产品或服务的反映等。通过投票系统搜集的信息可以对网站做出相应改进。本节通过系统背景、系统模块分析和系统流程图3个方面来对系统进行分析。1.1 系统背景从国际互联网到校园网、企业局域网,各种网上投票系统随处可见。意见调查、用户信息统计、经营情况调查都可以作为投票的内容。网上投票系统凭借其方便快捷等特点,已经成为互联网资源中不可缺少的一部分。网上投票系统是网站搜集用户需求并有效地实施市场策略的重要手段之一。通过开展问卷调查,可以迅速了解不同行业、不同区域用户的需求,客观地搜集需求信息,及时调整网站的营销策略以满足不同的需求。随着网络技术的发展,网上投票系
4、统的作用将会越来越大。1.2 系统模块分析为了更合理地设计投票系统,需要从以下3点进行分析。1投票的形式网上投票系统是网站搜集用户需求信息的一个途径,可以根据网站的需要设置一个或多个调查。不同的调查需要设置不同的选项,不同的调查要求,选项的形式也是不同的(单选或多选),不同时间段又会有不同的调查。既然网站要通过投票系统搜集信息,那么投票就必须有结果和对用户信息的统计。2投票的特点由于互联网本身的开放性,使网上投票面临种种危险,也由此提出了相应的安全控制要求。q 信息保密性:投票者有保密的要求。如果用户名及投票内容被人知悉,就对用户的隐私权构成了侵害。因此在网上投票系统中一般均有匿名投票的要求。
5、q 投票唯一性:一个投票者,其投票次数应当只有一次。若投票者可进行多次投票,这将对调查内容的可靠性构成严重的威胁。有了这些特殊性的要求,就需要对用户的信息和投票进行检查和处理,以保证投票的客观和有效性。针对用户信息,如果无特殊的要求(例如只允许注册会员参加),那么系统就只需要记录的IP、投票时间、用户所在区域。投票结果的显示是非常重要的,一是用户希望自己的投票能够及时反映出来;二是投票的结果也是给希望投票的用户的一个参考。3投票系统结构根据投票系统对形式的需求和投票系统自身的特点,需要包含以下几个模块。q 投票管理模块:该模块可以添加、编辑和删除调查选项,设置调查选项为多选或单选,设置调查的时
6、间期限,设置此调查是否启用,调查结果的统计显示。q 调查显示模块:该模块的功能是显示已启用、未过期的调查。q 投票处理模块:该模块需要对投票进行有效性检查,并将投票结果和用户信息写入数据库。q 调查结果显示模块:该模块主要是计算每个调查选项统计结果的百分比并以图表的形式显示 出来。q 数据库操作的基础模块:该模块定义了连接数据库、表的查询,数据的插入、更新和删除操作。该模块作为一个通用模块将会在后面的章节用到。1.3 系统流程图根据以上分析,系统的流程如图1.1所示。在该流程中,网站管理员在投票管理里面添加调查数据,然后在调查显示模块里面显示出来。用户通过调查显示的“投票”按钮投票,数据被传递
7、到投票处理模块,处理之后转到调查结果显示页面。用户也可以通过调查显示的“查看结果”按钮直接转到调查结果显示页面。图1.1 系统流程图2数据库设计通过第1节对投票系统功能的分析可知,需要存储的信息有调查信息、调查选项信息和用户信息。因此,本系统需要建立调查信息表、调查选项信息表和用户信息表。先从图1.2来分析这几个表之间的关系。从图1.2可以看出调查信息、调查选项信息和用户信息都是1对多的关系,并通过调查信息ID关联。构架的投票系统数据库vote(采用MySQL数据库)如表1.1表1.3所示。图1.2 数据表关系图表1.1 调查信息表:EM_VOTE_INFO用于存储调查内容字 段 名类型(长度
8、)描 述主 键是否为空默认值备 注F_IDINT(10)表ID(唯一)是否自动增加F_VOTE_TITLEVARCHAR(255)调查标题否否F_VOTE_STARTINT(10)TIMESTAMP调查开始时间否是F_VOTE_ENDINT(10)TIMESTAMP调查结束时间否是F_VOTE_ITEM_TYPETINYINT调查选项类型否否11为单选(默认)2为多选F_VOTE_IS_DISPLAYTINYINT是否启用否否11为启用(默认)0为禁用表1.2 调查选项信息表:EE_ITEM_INFO用于存储调查的选项信息字 段 名类型(长度)描 述主 键是否为空默认值备 注F_IDINT(1
9、0)表ID(唯一)是否自动增加F_ID_VOTE_INFOINT(10)调查表ID否否与调查表关联F_ITEM_TITLEVARCHAR(50)选项标题否否F_ITEM_COUNTINT(10)统计数量否否0F_ITEM_ORDERTINYINT选项排列顺序否否01为单选(默认)表1.3 调查用户信息表:EE_VOTE_USER用于存储用户信息字 段 名类型(长度)描 述主 键是否为空默认值备 注F_IDINT(10)表ID(唯一)是否自动增加F_ID_VOTE_INFOINT(10)调查表ID否否与调查表关联F_USER_IPINT(15)用户IP否否续表字 段 名类型(长度)描 述主 键是
10、否为空默认值备 注F_USER_TIMEINT(10)TIMESTAMP统计时间否否F_USER_AREAVARCHAR(20)用户所在区域否否3数据库配置数据操作基础模块主要实现数据库连接以及对数据库表的一些基本操作功能。它包括配置文件和数据库操作文件。下面分别对它们做详细讲解。3.1 配置文件config.inc.php建立配置文件是系统构架需要考虑的重点。因为在一个系统里会有一些常用的参数在很多地方可以用到,如果到使用的时候才定义,那么需要修改的时候就会相当的麻烦,而且容易出错,代码的可读性也很差。在配置文件里放的主要是数据库连接用的参数和一些全局变量。代码如下:3.2 数据操作文件db
11、.inc.phpPHP是一种面向对象的编程语言。这个数据操作文件主要用于建立一个类。该类的初始化构造函数可以连接数据库和表。其他的方法包括对表的查询、数据的插入、更新、删除操作和事务处理。事务处理是用在执行多个更新或删除操作时为了保证数据完整性而使用的。把这些基本操作封装在一个模块里面对于代码的可读性、系统的扩展性和健壮性都有好处。代码如下:CONN = $conn;/* * 功能:数据库查询函数 * 参数:$sql SQL语句 * 返回:二维数组或false */public function select($sql = )if (empty($sql) return false;/如果SQ
12、L语句为空则返回falseif (empty($this-CONN) return false;/如果连接为空则返回falsetry/捕获数据库选择错误并显示错误文件$results = mysql_query($sql,$this-CONN);catch (Exception $e)$msg = $e;include(ERRFILE);if (!$results) or (empty($results) /如果查询结果为空则释放结果并返回falsemysql_free_result($results);return false;$count = 0;$data = array();while
13、 ($row = mysql_fetch_array($results) /把查询结果重组成一个二维数组$data$count = $row;$count+;mysql_free_result($results);return $data;/* * 功能:数据插入函数 * 参数:$sql SQL语句 * 返回:0或新插入数据的ID */public function insert($sql = )if (empty($sql) return 0;/如果SQL语句为空则返回falseif (empty($this-CONN) return 0;/如果连接为空则返回falsetry/捕获数据库选择
14、错误并显示错误文件$results = mysql_query($sql,$this-CONN);catch(Exception $e)$msg = $e;include(ERRFILE);if (!$results) /如果插入失败就返回0,否则返回当前插入数据IDreturn 0;elsereturn mysql_insert_id($this-CONN);/* * 功能:数据更新函数 * 参数:$sql SQL语句 * 返回:TRUE OR FALSE */public function update($sql = )if(empty($sql) return false;/如果SQL语
15、句为空则返回falseif(empty($this-CONN) return false;/如果连接为空则返回falsetry/捕获数据库选择错误并显示错误文件$result = mysql_query($sql,$this-CONN);catch(Exception $e)$msg = $e;include(ERRFILE);return $result;/* * 功能:数据删除函数 * 参数:$sql SQL语句 * 返回:TRUE OR FALSE */public function delete($sql = )if(empty($sql) return false;/如果SQL语句为
16、空则返回falseif(empty($this-CONN) return false;/如果连接为空则返回falsetry$result = mysql_query($sql,$this-CONN);catch(Exception $e)$msg = $e;include(ERRFILE);return $result;/* * 功能:定义事务 */public function begintransaction()mysql_query(SET AUTOCOMMIT=0);/设置为不自动提交,因为MySQL默认立即执行mysql_query(BEGIN);/开始事务定义/* * 功能:回滚
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 PHP MySQL 投票 系统 设计

链接地址:https://www.31ppt.com/p-2388727.html