快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

PHP/MySQL三日通-第二天(一)

       一、 while循环

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

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

 $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?php


$db = mysql_connect("localhost", "root");

mysql_select_db("mydb",$db);

$result = mysql_query("SELECT * FROM employees",$db);

echo "$#@60;table border=1$#@62;/n";

echo "$#@60;tr$#@62;$#@60;td$#@62;姓名$#@60;/td$#@62;$#@60;td$#@62;职位$#@60;/td$#@62;$#@60;/tr$#@62;/n";

while ($myrow = mysql_fetch_row($result)) {

printf("$#@60;tr$#@62;$#@60;td$#@62;%s %s$#@60;/td$#@62;$#@60;td$#@62;%s$#@60;/td$#@62;$#@60;/tr$#@62;/n", $myro
w[1], $myrow[2], $myrow[3]);


}

echo "$#@60;/table$#@62;/n";

?$#@62;

$#@60;/body$#@62;

$#@60;/html$#@62;

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

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

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

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

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

二、 if-else

  请看下面的程序。

 

 $#@60;html$#@62;

$#@60;body$#@62;

$#@60;?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 "$#@60;table border=1$#@62;/n";

echo "$#@60;tr$#@62;$#@60;td$#@62;姓名$#@60;/td$#@62;$#@60;td$#@62;住址$#@60;/td$#@62;$#@60;/tr$#@62;/n";

do {

printf("$#@60;tr$#@62;$#@60;td$#@62;%s %s$#@60;/td$#@62;$#@60;td$#@62;%s$#@60;/tr$#@62;/n", $myrow["first"],
$myrow["last"], $myrow["address"]);

} while ($myrow = mysql_fetch_array($result));

echo "$#@60;/table$#@62;/n";

} else {

echo "对不起,没有找到记录!";

}


?$#@62;


$#@60;/body$#@62;


$#@60;/html$#@62;

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

  if-else条件判断语句的含意是,假如我们成功地把一条记录赋给了$myrow变量,那就继承;否则,就跳到else部分,执行那里的指令。

  do/while循环是我们在上页中用户的while()循环的一个变体。我们要用到do/while的原因是:在最初的if语句中,我们已经把查询返回的第一条记录赋给变量$myrow了。假如这时我们执行一般的while循环(比如,while ($myrow = mysql_fetch_row($result)),那我们就会把第二条记录赋给$myrow,而第一条记录就被冲掉了。但是do/while循环可以让我们执行一次循环体内容之后再来判断循环条件。因此,我们就不会不小心漏掉第一条记录了。

  最后,假如查询结果没有任何记录的话,程序就会执行包含在else{}部分的那些语句。假如您想看到这部分程序的执行情况,可以把SQL语句改为SELECT * FROM employees WHERE id=6,或改成其他形式,使得查询结果中没有任何记录。

  下面我们来扩充一下循环if-else 代码,使得页面内容更加丰富。相信您会喜欢的。

本新闻共2页,当前在第1页  1  2  

本新闻共2页,当前在第1页  1  2  


返回类别: 教程
上一教程: header 函式的使用
下一教程: 转载老外编写的一个maillist源代码

您可以阅读与"PHP/MySQL三日通-第二天(一)"相关的教程:
· PHP/MySQL三日通-第二天(四)
· php与mysql三日通-第二天
· PHP/MySQL三日通-第二天(三)
· PHP/MySQL三日通-第二天(二)
· php & mysql三日通 2
    微笑服务 优质保证 索取样品