鸟枪换炮

来源 :电脑爱好者 | 被引量 : 0次 | 上传用户:maxiao912
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  本文可以学到
  1 复习上一期的表单数据提交
  2 PHP中如何调用MySQL数据库
  
  网友聚会,来报名啦!
  
  ——在线活动报名表的制作
  在线活动报名表的主要实现思路,与上一期的网上收藏夹类似,不过我们需要读取的表单信息会更多,所以使用数据库来存储数据。
  


  假设我们设计的是一个开放型的活动,任何网友都可以报名参加,并且可以带P到2两个朋友,不过活动的总人数有限制。那么,每一条报名表需要包含以下信息:姓名、公司、联系方式、带朋友人数、附加留言等,在线报名表如图P所示。网友输入了对应的信息,提交以后,就可以查看已经报名的人员列表了(见图2)。因为数据保存在数据库中,所以还需要在数据库中建立对应的数据表。如果是在自己的电脑中安装的MySQL,可以从“开始,菜单打开MySQL客户端。在提示信息处,输入设置的管理员密码,即可登录并操作数据库了。我们将数据保存到test这个库的activity表下面,按照数据表的创建规则,可以在客户端输入创建数据表的命令来建立需要的数据表。本例分别使用name、company、contact、friend、messages来对应姓名、公司、联系方式、带朋友人数、附加留言,并且给每条信息分配一个自动增加的编号id和填写的时间time,具体的指令如下:
  接着再以“SELCT*FROMactivity;”(不含引号)指令从activity数据表中读取所有数据,因为是新建立的表,所以显示数据为空。至此,数据表建立好了,就可以使用PHP来进行操作。
  
  挖好“陷阱”等着别人跳
  
  数据表设计好了,就像是挖好一个“陷阱”,等着别人往里跳了(則访问者填写并提交表单)。当然,这些还是需要PHP配合来提取、分析、管理这些数据才行。这次我们同样使用多个文件来存放不同类类信息和代码,其中header.html、footer.html、ioin.html分别用来存放页面头部、页面尾部、报名表单的HTML信息,config.php用来保存程序需要的公共信息,join.php和index.php分别用来处理申请加入和列表显示操作。
  下面,我们分别针对config.php、join.php、index.php的重点部分进行讲解。一大堆的代码,估计你也懒得输入,其实你可以直接从前面提供的链接下载下面的源文件。
  1、config.php文件代码
  这个文件,主要用于数据库和报名表设置,以及数据库的连接。
  要操作一个数据库,一般需要数据库服务器的地址$db_host,所使用的用户名$db_user和密码$db_pass,以及具体要操作的库$db_name,然后使用mysql_connect函数来进行连接,如果连接失败,程序就会调用die函数停止继续运行,并且调用mysql_error()函数显示错误信息。在第7行中,or用来表示逻辑或操作,如果前面的代码执行成功则后面的不会被执行。否则执行后面的代码。数据库连接成功,再使用mysql_select_db函数来选择将要进行操作的数据库,然后调用mysql_query函数来执行一条MySQL的指令“SET NAMES gbk”,使得我们操作数据库的字符集与数据表本身设置的字符集都为gbk。
  


  mysql_query函数是在PHP进行数据库操作中,使用最多的一个函数,绝大部分的MySQL操作指令,都是通过它来执行的,例如:插入新的数据、更新已有的数据、读取已有的数据、删除已有的数据等,可以访问http://docs.php.net/manual/zh/function.mysqL-query.php查看该函数的具体用法。
  第11行的$join_max表示我们限制总共多少人参加这个活动,第12行的$fieods设置需要读取的报名表单信息。
  2、join.php文件代码
  这个文件的主要作用是处理用产提交的表单信息,检查是否输入完整,参加人数是否满了,以及将报名信息存入数据库。鉴于源代码有点长。为节约版面这里就不列出了,大家可以从本文下载包中提取,其中含有带序号的版本。
  第5到P8行,程序使用foreach来循环检查$fields所需要的表单信息是否都已经填写了。如果没有填写完整,则显示报名表单,让网友重新填写。如果填写完整了,就将相关的信息保存到$data数组中。为了防止输入的信息中可能存在单引号对数据库指令造成影响,第16行使用addsoashes函数,来进行处理。
  第20行,程序设置了一条MySQL指令“SELECTCOUNT(id),SUM(friend)FROMactivity”,然后使用mysql_query函数将指令送到数据库查询,其中,COUNT(id)表示计算id字段的个数,也就表示报名信息总的条数,SUM(friend)表示计算friend字段的和,也就是表示网友带来朋友的总数。在MySQL之中,进行数据查询,就使用SELECT指令,告诉数据库在什么数据表中查询什么内容,然后数据库会根据指令将相关的信息取出来返回给$res,让我们印程序读取操作。同时,还可以使用MySQL提供的函数,例如COUNT、SUM等进行处理。
  读取了数据以后,我们可以使用mysql_Rum_rows函数来检查是不是有数据读取到了,如果没有读取到数据,有可能我们设置的指令存在问题,需要仔细检查是否正确。
  


  mysql_querV函数执行的结果,是将MySQL查询的结果返回到了$res之中,需要使用mysql_fetch_array函数,才能将实际的信息读取出來。mysql_fetch_array函数读取的结果$row,是一个数组的形式,对应我们查询的每条信息。
  根据我们前面设置的查询指令,返回的查询信息只有一条,而且是一个数字下标索引的数组,有两个元素,编号。的元素表示报名信息总的条数,编号1的元素是网友带来朋友的总数。报名信息总的条数加上网友带来朋友的总数,就表示我们这个活动现在已经有多少人参加了。第26行,程序检查已有的人数加上网友报名的人数,是否在总人数限制范围以内,如果超过,则提示是否满了或者还可以参加多少人。
  如果还可以参加,程序就将报名信息插入数据库保存起来,第28到29行,就用来处理报名信息的保存,首先操作$data构造出我们需要的数据$sql_fields和$sql_vaoues,然后放入“INSERTINTO”指令中执行,并检查执行是否成功。最后,数据库操作完成,调用mysql_close函数来关闭数据库连接。
  3、index.php文件代码
  这个文件的作用就是简单地从数据库读取数据,并进行列表显示。这里就不列出源代码了,大家可以直接从下载的压缩包中获得。
其他文献
高密化纤总厂是以棉浆粕为主导产品的国有大型企业,棉浆粕年生产能力4000吨,是目前全国最大的棉浆粕生产厂。棉浆粕生产不仅能源消耗大,而且环境污染严重,但是,几年来该厂依
当56Kbps modem 之战进行得如火如荼的时候,标准还没有推出,显然 modem 厂商对此深感满意。正如人们所预料,ITU56Kbps modem 制定小组无法在9月提出标准草案,该小组计划在12
目前的问题几年前,笔者就职于一家软件开发公司时,使用Visul Basic编写MIS应用程序,通过ODBC驱动程序与NT服务器上的Oracle数据库进行数据处理。工作站采用486微机,服务器是
虽然 Loms Development公司的Domino Go Webserver软件在界面上缺乏其他万维网节点服务器软件的一些优点,但是它的其他特征在ZD实验室的测试中表现突出。 8月刚刚上市的Domi
整个业界在定义服务质量(Quality of Service,QOS)保证上所做的努力一直受到关注,而网络管理者已不能满足其在用户中分配带宽的直接需要,特别是在Internel中。这种情况一直
德国纺织业面临危机1993年德国纺织品的总销售额约为353亿马克(1美元约合1.64马克),比上年减少了11%,已降至八十年代初的水平。一年之间降幅之大,为二次大战后近40年来首次出现。德国纺织业的就业人
50年代,中国人曾经为我们的汽车背着大气包而感到羞辱,从而奋发图强,要摘下石油贫血的帽子,甩掉大气包。曾几何时,当我们还津津乐道于石油的自给有余,陶醉在不再使用大气包盛
随着历史悠久的 SNMP 协议不断修正,网络管理员们今年秋天可望见到具备更新版 SNMPv3 优点的产品。也许在从现在开始的未来6个月至18个月里,这个规范还不能被广泛接受,因而
Microsoft 日前加入到为Internet 提供分布计算体系结构的供应商行列,这一举措使其离现有的 Web组件技术 ActiveX 越来越远.在’97专业开发人员大会上宣布的 DNA(Distribute
Mobility Electronics 9月中旬宣布兼并Miram国际公司,后者是增强型笔记本扩展解决方案的开创者之一。Miram是第一个使通用型扩展坞进入市场的公司,这次兼并扩大了Mobility