随笔-211  评论-26  文章-8  trackbacks-0
在这一部分我们将建立一个简单的支持PHP的本地网站用来支持访问前面建立的MySQL表。 

我们先建立下面几个文件:

建立index.php3用来显示数据库内容
建立add.php3用来向表中加入记录
建立Modify.php3用来修改表的内容
建立del.php3用来删除表中的记录 

首先我们想在网页中显示数据库中表tb1的内容

请看下面的脚本: 

Index.php3: 



<html>
<head><title>Web Database Sample Index</title>
</head> 
<body bgcolor=#ffffff>
<h2>Data from tbl</h2>

<?
mysql_connect() or die ("Problem connecting to DataBase");
$query = "select * from tbl";
$result = mysql_db_query("example", $query); 

if ($result) {
echo "Found these entries in the database:<br><p></p>";
echo "<table width=90% align=center border=1><tr>
<td align=center bgcolor=#00FFFF>User Name</td>
<td align=center bgcolor=#00FFFF>Last Name</td>
<td align=center bgcolor=#00FFFF>domain Name</td>
<td align=center bgcolor=#00FFFF>Request Date</td>
</tr>";

while ($r = mysql_fetch_array($result)) {

$idx = $r["idx"];
$user = $r["UserName"];
$last = $r["LastName"];
$text = $r["FreeText"];

echo "<tr>
<td>$idx</td>
<td>$user</td>
<td>$last</td>
<td>$text</td>
</tr>";
}
echo "</table>";

} else {
echo "No data.";
}

mysql_free_result($result);
include ('links.x');
?>

</body>
</html>


好,现在解释一下上面的内容。
我们先用HTML标签来建立一个HTML文档的结构,当要调用PHP脚本时使用标签<? 脚本 ?>,Web服务器将把后面的文本识别为PHP脚本代码,而不是HTML代码。

mysql_connect()命令用来与MySQL数据库服务器建立连接。如果与数据库连接成功,脚本程序将继续向下执行,如果无法连接将显示终止执行的信息"Problem connecting to DataBase"。


如果使用新网提供的MySQL数据库帐户,与数据库的连接命令就应该使用如下方式:

mysql_connect (localhost, username, password); 

我们将查询MySQL数据库的命令赋给$query,脚本通过mysql_db_query命令来执行这个查询命令:

$result = mysql_db_query("example", $query); 

"example"是数据库的名字,$query就是要使用的MySQL查询方式。mysql_db_query实际是一个函数,它将对example数据库进行select * from tbl的操作,操作的结果赋给$result。 

我们使用MySQL的命令select来获得表中的数据:

$query = "select * from tbl"; 

查询命令将查询结果的状态标志符传递给$result,而不是查询的信息内容,但标志符可以翻译成我们需要的信息。 

接下来是要查看是否得到了数据库中的数据信息,并将信息以固定的格式显示在HTML表格中。如果要检验是否得到数据,可以使用下面的语法结构: 

if (argument) {

"command1;"

} else {

"command2;"

}


当判断的条件为真时,将执行"command1",如果条件为假,则执行"command2"。注意我们在建立HTML的表格时使用echo命令后面加上HTML的标签。

echo "<table width=90% align=center border=1>"

在网页中显示的是引号中的内容,而PHP命令不会显示出来。

下面是使用的循环结构: 


while (argument)) {
"command1";
}




while循环在条件为真时将一直执行{ }内的命令。


这里我们是将while循环与PHP命令$r=mysql_fetch_array ($result)组合在一起使用。这个命令是从表中读取一行满足结果result的记录,并将读取的结果放入一个关联数组$r,并使用表中列的名称作为数组的标识即你可以使用一个名字来访问数组,比如$my_array['first_name']。从上面的脚本中可以得到数组:
$r['idx'], $r['UserName'], $r['LastName'] and $r['FreeText'].

我们也可以使用命令mysql_fetch_row将读取结果放到一个普通的数组中,得到的结果是:
$r[0], $r[1], $r[2] and $r[3] 

现在我们从数据库中得到了所有的信息,下面就是将信息显示在HTML的表格中: 

echo "<tr>
<td>$idx</td>
<td>$user</td>
<td>$last</td>
<td>$text</td>
</tr>";





现在我们可以关闭与MySQL的连接并释放相关的资源,使用命令:mysql_free_result($result)。

PHP的一个很有用的功能是可以在脚本程序中引用文本文件。假设我们经常要使用重复内容的代码,就可以用这一功能来节省编写时间。如果以后要更改代码的内容,只需对文本文件进行修改,所有引用该文件的脚本都将随之改变。

下面是我们建立的一个名为Links.x的文本文件,其中的内容是我们要在每一页都要用到的链接表。


<p></p>
<ul>
<li><a href="index.php3">Home</a>
<li><a href="add.php3">Add a new entry to the DataBase</a>
<li><a href="edit.php3">Edit an entry</a>
<li><a href="del.php3">Delete an entry from the DataBase</a>
</ul>


引用的格式是:

Include ('included_text_file');

现在我们可以用标签 ?>来结束PHP脚本。整个HTML文件的结束使用</body></html>。
使用表单实现向数据库中添加信息。

请看下面的表单:


<html>
<head><title>Add an entry to the database</title>
</head>
<body bgcolor=#ffffff>

<h1>Add an entry</h1>

<form method="post" action="add2tbl.php3">
<table width=90% align=center>

<tr><td>Index:</td><td><input type=text name="idx" size=3
maxlength=3></td></tr>

<tr><td>UserName:</td><td><input type=text name="UserName" size=40
maxlength=100></td></tr>

<tr><td>LastName:</td><td><input type=text name="LastName" size=40
maxlength=100></td></tr>

<tr><td>FreeText:</td><td><input type=text name="FreeText" s=40
maxlength=100></td></tr>

<tr><td></td><td><input type=submit value=add></td></tr>

</form>
</table>

<?php include ('links.x');?>

</body>
</html>

如果你对表单很熟悉,可以看出上面是一个很简单的脚本程序。我们建立一个表单页,并在提交后调用add2tbl.php3脚本。表单中包括4个与MySQL中的表tb1相关的输入项:index number, FirstName, LastName 和FreeText。它们与表中的列名称是一样的,但事实上这样做是为了方便,而不必一定要这样做。

最后使用include命令将链接加入到网页中。
<? include ('links.x');?> 
让我们来看一看在服务器端PHP脚本add2tbl.php3的内容:


<html>
<body>

<?
if ($UserName) 
{

mysql_connect() or die ("Problem connecting to DataBase");
$query = "insert into tbl values
('$idx','$UserName','$LastName','$FreeText')";
$result = mysql_db_query("example", $query); 

echo "Data inserted. new table:<br><p></p>";
$query = "SELECT * FROM tbl";
$result = mysql_db_query("example", $query); 

if ($result) {
echo "<table width=90% align=center border=1><tr>
<td align=center bgcolor=#00FFFF>idx</td>
<td align=center bgcolor=#00FFFF>User Name</td>
<td align=center bgcolor=#00FFFF>Last Name</td>
<td align=center bgcolor=#00FFFF>Free Text</td>
</tr>";

while ($r = mysql_fetch_array($result)) {
$idx = $r["idx"];
$user = $r["UserName"];
$last = $r["LastName"];
$free = $r["FreeText"];

echo "<tr>
<td>$idx</td>
<td>$user</td>
<td>$last</td>
<td>$free</td>
</tr>";

} // end of while loop

echo "</table>";

} else {

echo "No data.";

} // end of if ($result)

} else {

echo "No UserName Entered. Please go back and reenter UserName";

} // end of if ($UserName)

echo "<p></p>";

include ('links.x');

?>

</body>
</html>



代码主要包括两部分,第一部分将表单中得到的数据插入到数据库表中,第二部分将更新后的表的内容显示在网页中。第二部分与前面的查询数据库的脚本内容是一样的,所以我们只看第一部分: 

首先使用命令mysql_connect()与数据库建立连接。然后使用下面的查询方式:

$query = "insert into tbl values ('$idx','$','$LastName','$FreeText')"; 

这个查询将从表单中得到的值$idx, $UserName, $LastName和$FreeText插入到表tbl中。

这个脚本中使用了一些注释,使用方法是注释内容前面加上"//"。

很简单是吧? 

posted on 2006-10-08 18:15 dragon 阅读(72) 评论(0)  编辑  收藏 所属分类: php学习专区