文章利用了一个简单的实例来实现php从数据库中读取数据详细讲解(组图)

文章借助了一个简单的实例来实现php从数据库中读取数据详尽讲解先看段代码,代码如下:

session_start();

$con=mysql_connect('localhost','root','root')ordie('链接数据库失败!');

mysql_query('setnamesutf8');

mysql_select_db('GuestBook');

$pagesize=10;//每一页显示多少留言记录

if(isset($_GET['page'])&&$_GET['page']!='')$page=$_GET['page'];

图片[1]-文章利用了一个简单的实例来实现php从数据库中读取数据详细讲解(组图)-唐朝资源网

else$page=0;

$sql=”SELECTa.*,b.name,b.email,b.qq,c.revert_time,c.revert

FROMposta

LEFTJOINrevertcON(a.id=c.post_id),guestb

WHEREa.guest_id=b.id

ORDERBYa.idDESC”;

$numRecord=mysql_num_rows(mysql_query($sql));

$totalpage=ceil($numRecord/$pagesize);

$recordSql=$sql.”LIMIT”.$page*$pagesize.”,”.$pagesize;

$result=mysql_query($recordSql);

下边来瞧瞧.

第一行:我们暂时先不说,留到之后再说,暂时还用不到;

第二行——第五行:你们一定很眼熟吧,是的这儿和post.php插入留言信息的时侯的过程是一样的,也就不多说了。

7、8、9和19行我们暂时不说,这儿是涉及到分页的,我们将会留到下一章详尽的说明这个问题,由于分页的过程在web编程过程中几乎是一个必需要使用的功能。

图片[2]-文章利用了一个简单的实例来实现php从数据库中读取数据详细讲解(组图)-唐朝资源网

在11-15行我们定义了一个数据库查询句子,在这条句子中我们用了leftjoin…on..句子,关于这个句子的详尽用法请参看Mysql指南联合查询部份。。

看第16行,代码如下:

$numRecord=mysql_num_rows(mysql_query($sql));

这个句子中我们用mysql_query($sql)把我们定义的sql句子发给数据库来执行,这个句子执行之后会返回一个记录资源号,我们用内层的mysql_num_rows来取得有多少个匹配的记录——也就是返回的记录总量。

第17行我们用到了ceil函数,这个函数的功能是php循环处理大量数据,进一法取整,也就是说两个数进行减法操作以后只要余数小于零整数部份就加一之后舍弃小数部份,所以ceil(1/2)的结果是1,而不是我们一般所看到的0.5。这个对于我们来说很有用——也留到下一章分页的时侯再说吧。

第19行,涉及到分页部份。并且这一行值得说的是,在PHP中字符串的相乘,也就是字符串的联接,两个字符串相乘的操作符是点,看事例,代码如下:

$strFirst=”中国”;

图片[3]-文章利用了一个简单的实例来实现php从数据库中读取数据详细讲解(组图)-唐朝资源网

$strTwo=”伟大的国度”;

$strSum=$strFirst.$strTwo;

echo$strSum;

输出的结果正如我们所料到的一样:中国伟大的国度。

第20行:我们发送一个带分页功能的sql句子到数据库执行,并把执行结果形参给$result;

接着我们看,本页函数的第:128-154行,这个程序的片断功能是循环输出在数据库中查询到的记录。这是我们本章的重点.

看PHP的外置函数mysql_fetch_object()从结果集中取得一行作为对象,关于PHP的对象我们在中级编程栏目上将会详尽的说明,我们这儿只须要晓得这些循环查询记录的形式,须要用$对象->数组名来访问就行了,执行上去的时侯就是每一次表针下移一次,当遇见没有更多的记录的时侯就返回一个false所以我们可以用while循环来读取$result的这个记录集。

最终产生了while($rs=mysql_fetch_object($result))这个句子,循环调用mysql_fetch_object函数而且把每次返回的对象形参给$rs变量,如今哦我们看这个循环的内部,我们可以用$rs->name来取得留言人姓名,用$rs->post_time来访问留言时间。

在显示post_time的时侯我们做了一些处理,使用到了date()函数,记得我们储存留言的时侯用到了time()函数,这个函数返回的是一个时间戳,就是从1970年的第1秒起到如今早已经过的秒数(格林尼治时间)。而date函数就是把这个秒数翻译为我们所须要的时间格式,返回如何的字符串须要们在date()函数的第一个参数中拟定,该函数的第二个参数若果没有给出,也就是须要翻译成时间格式的秒数没有给出的话,他都会以当前时间来翻译。

Date(“Y年m月d日H:i:s”),输出结果就是2009年4月26日11:16:20。

我们在index.php的132行有这样的写法,代码如下:

我们具体谈谈这个,我想你们一定会对8*3600这个地方倍感奇怪,虽然缘由很简单。俺们用time()函数储存时间的时侯用的是格林尼治时间,这个时间和我们的时间相差正好八个小时,每位小时3600秒,我们处在东方比西方的时间快所以要加上的。记住我们用的是上海时间——处在东八时区哦,这个是常识!关于这一点还有一个做法,这将会在专门探讨PHP的日期函数的文章里详尽说明。

144和146行都用了两个函数htmlspcialchars和nl2br,其中htmlspcialchars这个函数是为了防止用户输入的脚本代码(html和javascript)被执行而必须的php循环处理大量数据,这个函数很重要。若果没有这个函数用户输入的js代码和html代码就会被作为页面程序的一部份被执行,这一点我们在《关于PHP代码安全性建议》一文中早已说过,不在赘言。

nl2br这个函数的作用是讲数据中的n换行转换成html的换行

以易于页面表现。在我们输入留言信息的时侯,用的这个表单,保存信息的时侯,换行使用n来表示的所以我们这儿须要转换,以保留用户输入信息在显示的时侯我输入时段落一致。

© 版权声明
THE END
喜欢就支持一下吧
点赞265 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片