快速业务通道

PHP/MySQL三日通(3)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

一、 while循环

在这一课里,我们将会继续深入下去,使用PHP和MySQL来写出一些简单而有用的页面。我们从昨天创建的数据库开始,显示库中的数据,但是会再稍微加以润色。

首先,我们用下面的代码来查询数据库内容。

<html>
<body>
<?php
$db = mysql_connect(\"localhost\", \"root\");
mysql_select_db(\"mydb\",$db);
$result = mysql_query(\"SELECT * FROM employees\",$db);
echo \"<table border=1>\n\";
echo \"<tr><td>姓名</td><td>职位</td></tr>\n\";
while ($myrow = mysql_fetch_row($result)) {
printf(\"<tr><td>%s %s</td><td>%s</td></tr>\n\", $myrow[1], $myrow[2], $myrow[3]);
}
echo \"</table>\n\";
?>
</body>
</html>

您可能已经注意到,我们在这个程序里加进了一些新东西。最明显的是while()循环。该循环是说,只要数据库里还有记录可读(使用mysql_fetch_row()函数),那就把该记录赋给变量$myrow,然后执行大括号({})内的指令。仔细看一下这里,这部分是比较重要的。

我们应该注意一下mysql_fetch_row()函数。这里有一点小问题,它返回的是一个数组,必须以数组下标来访问其中的某个字段。第一个字段下标为0,第二个是1,依此类推。在执行某些复杂查询时,这么做简直实在是太烦琐了。

现在我们更仔细地研究一下循环过程。程序前几行我们在第一课的例子中已经看到过了。然后,在while()循环中,我们从查询结果中读取一条记录并把该记录赋给数组$myrow。接着,我们用printf函数把数据中的内容显示在屏幕上。随后,循环反复执行,读取下一条记录赋给$myrow。这样继续下去,直到所有记录都已被读取完为止。

使用while()循环的一个好处是,如果数据库查询没有返回任何记录,那您也不会收到错误信息。在刚执行循环语句时,循环条件就不满足,不会有任何数据赋给$myrow,程序就直接往下运行了。

但是如果查询未返回任何数据,我们怎么让用户知道这一点呢?我们也许该提供点儿相关的消息给用户吧。这是可以做到的,下面我们就看看怎么做。>>

二、 if-else

请看下面的程序。


<html>
<body>
<?php
$db = mysql_connect(\"localhost\", \"root\");
mysql_select_db(\"mydb\",$db);
$result = mysql_query(\"SELECT * FROM employees\",$db);
if ($myrow = mysql_fetch_array($result)) {
echo \"<table border=1>\n\";
echo \"<tr><td>姓名</td><td>住址</td></tr>\n\";
do {
  printf(\"<tr><td>%s %s</td><td>%s</tr>\n\", $myrow[\"first\"], $myrow[\"last\"], $myrow[\"address\"]);
}
while ($myrow = mysql_fetch_array($result));
echo \"</table>\n\";
} else {
  echo \"对不起,没有找到记录!\";
}
?>
</body>
</html>

 这段程序中包含有不少新内容,不过这些内容都相当简单。首先是mysql_fetch_array()函数。该函数与mysql_fetch_row()十分相近,只有一点不同:使用这个函数时,我们可以通过字段名而不是数组下标来访问它返回的字段,比如$myrow[\"first\"]。这样我们就可以省不少力气了。另外,程序中还加进了do/while循环和if-else条件判定语句。

if-else条件判定语句的含意是,如果我们成功地把一条记录赋给了$myrow变量,那就继续;否则,就跳到els

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号