$_GET系统变量的应用理解与实例
时间:2007-11-19 来源:kkboy_dyc
今天我工作的时候supervisor需要我尽可能快地提供给他们一个功能模块,实现对学院某数据报表的二次调用与整理。换句简单的话来说就是对数据库中一些特定表格数据进行提取和操作,要求通过web实现,我自然是选择了PHP平台,制作过程比较顺利我在这里写下其中几项关键的技术点以供读者参考。当然了,我会换一个实例来讲解这些内容。
首先我们先模拟一个简单的环境,先来创建一个表格 news, 并预先插入一些数据:就以我个人网站的新闻系统为例,我并没有插入具体的新闻内容,只是插入了标题,但不影响我们实现功能模块:
-- --------------------------------------------------------
--
-- 表的结构 `news`
--
CREATE TABLE `news` (
`id` int(10) NOT NULL auto_increment,
`date` date NOT NULL default '0000-00-00',
`title` varchar(100) NOT NULL default '',
`content` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=7 ;
--
-- 表中的数据 `news`
--
INSERT INTO `news` VALUES (1, '2007-11-09', '本站点数据库正式投入运行,数据管理将逐步功能化,模块化', '');
INSERT INTO `news` VALUES (2, '2007-11-09', '关于FTP服务器架设的问题', '');
INSERT INTO `news` VALUES (3, '2007-11-09', '关于站点转移的问题', '');
INSERT INTO `news` VALUES (4, '2007-11-09', 'Oracle学习笔记即将添加--基于Oracle 10g的SQL查询范围', '');
INSERT INTO `news` VALUES (5, '2007-11-09', '关于本网站功能模块化的问题:数据库解决方案一', '');
INSERT INTO `news` VALUES (6, '2007-11-09', '关于本站点合作建设的意向与意见书,模块化开发指导解决方案', '');
---------------------------------------------------------------
这个表格本身并没有什么值得关注的地方,只是大家要注意1个地方,DEFAULT CHARSET=utf8, 我在这里建议大家使用国际标准的编码UTF-8,并不是因为gb2312在mysql下不可用,而是做为一个编码规范,UTF-8具有更广泛的兼容性,在国内的服务器使用gb2312编码自然没有问题,但如果你在国外服务器上导入MYSQL中文数据,编码必须使用UTF-8 否则数据将呈现乱码的形式,我前几天就碰到了这个问题,着实让我头疼了一阵子。我会抽空专门写一篇关于UTF-8编码使用原理与规范的文章以便大家理解,这里就不再额外复述。
我们现在有了相应的数据库和数据表以及数据,现在我们需要实现什么功能呢?
从数据库中调用新闻标题,并以友好的界面显示出新闻列表,当我们点击新闻标题时,自动链接并调用数据库中该新闻标题的具体新闻内容。
试想一下,如果我们为成百上千的新闻标题单独手动制作链接那将是多么可怕的一件事情!!!!!
让我们开始吧,用PHP(好强大,好邪恶噢!)来制作一个高效而轻便的管理系统,我们首先需要建立一个显示页面,调用所有的新闻标题并以一个友好的页面显示到浏览器上,代码如下:
---------------------------------------------------------------------------------------------------
//连接数据库,我在这里自己制作了数据库联接功能模块函数,在这里直接调用了,我不再讲解 注意我用的是 include'';
/*一个CSS样式层范例,我这里不再讲解,会在以后的文章中逐渐解析给大家*/
".iconv("utf-8","gb2312",$title).""); ?>
/*把数据按表格输出*?
---------------------------------------------------------------
在这段代码里,我们最需要注意并吃透的只有一个概念,那就是参数的传递!!!在这里,哪个参数被传递了呢?我们将来如何获取这个参数呢?如何调用这个参数呢?我们为什么要传递这个参数呢?
所谓的参数传递是指一些变量根据需要在不同的页面间游动,确保持相同的值,或者根据需要变换值得类型或大小,我们通常使用$_GET来获取并存储这个值,从而实现相应的功能。
在上述代码中我们观察这句:
echo("".iconv("utf-8","gb2312",$title)."");
看到这个大家可能会有些疑问,这句话干吗用的?长的这么丑!
稍微有点PHP常识的人都会发现这里echo函数实现了2个功能,第一,显示了变量$title的内容,第二,为这个内容(其实就是我们的新闻标题)加上了一个动态链接,这个连接在被click后获取一个参数$topic_id并将这个参数传递到display.php页面下,从而让我们根据topic_id来进行二次查询。这句话的语法规则我就不再细说,看不懂的google PHP手册去。
下面我们来看display.php如何调用相应新闻标题下的新闻内容的。
--------------------------------------------------------
新闻内容
---------------------------------------------------------------------------------------
看到这里大家可能已经明白了,原来我们是为了动态的获取字段ID从而调用相应ID下的新闻内容,这样就实现了动态的设置链接并调用新闻内容。
这里我们需要注意2点,如何获取参数:
$id=$_GET['topic_id'];
这就是我们获取上一个页面中$topic_id参数的方法。并赋值到$id,然我们根据变量$id来进行相应数据库查询从而得到结果并显示出来。
写到这里我手都疼了。希望大家能够理解,有不清楚的地方欢迎讨论。
YUECHUAN DAI FHSU-VC
相关阅读 更多 +
排行榜 更多 +