一、编程之前的分析
要做一个留言板,而且我们也决定了采用数据库方式做,所以我们要从以下几个步骤开始做:
1.填写留言
在什么地方写留言?
2.传送留言
在文本框中输入了数据后肯定要以什么方式传到一个什么文件,而后一个文件又是这么接收变量的。
3.入数据库
后一个文件将接收的数据要进入数据库,所以,我们还要掌握这么往数据库中写入数据。
4.查看结果
将留言写入数据库后,主要是为了能在浏览器中查看,所以,我们要知道这么从数据库中读出数据。
二、做一个填写留言的文件(write.htm)
<form action=”write_ok.php” method=”post”>
请输入您的昵称:<input type=”text” name=”nickname”><br>
请留言:<textarea name=”note”></textarea><br>
<input type=”submit” value=”确定”>
</form>
三、PHP变量传送
熟悉ASP的朋友可能知道,从一个文件传送变量到另一个文件后,第二个文件是request接收数据的;
而PHP似乎更简单,当一个文件将变量传送到另一个文件后,自动产生一个变量,
下面,我将ASP和PHP分别举个例子。
1.ASP:
form.htm:
form action=”asp_to.asp” method=”post”>
输入昵称:< input type=”text” name=”nickname”>
<input type=”submit” value=”确定”>
</form>
asp_to.asp
您输入的昵称是:<% response.write(request.form(“nickname”)) %>
简单说明:在第一个文件中,有一个文本框,其名为nickname 和一个确定按钮,在文本框中输入信息后,
点“确定”,浏览器将提交到asp_to.asp 该文件将你在文本框中的内容显示出来,response.write就是显
示输出,而request就是接收变量“nickname”。
2.PHP:
form.htm:
该文件和上面的相同,只是将asp_to.asp改为php_to.php,也就是将输入的变量提交到一个名为php_to.php
的PHP文件。
php_to.php:
您输入的昵称是:<? echo $nickname; ?>
如此而已,其中echo为显示输出,相当于ASP中的 response.write 而$表示变量,PHP的变量用$表示。
四、PHP操作数据库
在上一节中,我介绍了MySQL数据库和数据表的建立。下面,将从一个例子简单介绍PHP操作数据库的方式。
[ 例一 ]
<?
$id=mysql_connect(‘localhost’,’root’,’adminpassword’);
$db=mysql_select_db(‘gsbook’,$id);
$result=mysql_query(‘select * from gsbook’,$db);
$maxrows=mysql_num_rows($result);
for ($i=0;$i<$maxrows;$i++) {
$nickname[$i]=mysql_result($result,$i,’nickname’);
}
for ($i=$i-1;$>=0;$i–)
{
echo “nickname:”.$nickname[$i].”<br>”;
}
?> 简单说明:
1.函数 int mysql_connect(string [ hostname ][:port],string [username],string [password])
返回一个MySql的连接ID,其参数相信大家一看就知道。
2.函数 int mysql_select_db(string database_name, int [ link_identifier ])用来打开数据库,
第一个函数为数据库名称,第二个为MySQL的连接ID,返回值为ture或false
3.函数 int mysql_query(string query, int [ link_identifier])返回一个结果(result)
4.函数 int mysql_num_rows(int result)返回query的行数。
5.函数 int mysql_result(int result,int row,mixed field)该函数返回某字段在某行的结果,
第二个参数为行数,第三个参数为字段名;需要说明的是,该字段名并不是物理字段名,
比如: select field1 as alias_field from table1 那么,在该函数中的第三个参数必须为
alias_field 而不是 field1。
6.PHP中的循环语句:
(1)do … while
(2)while … [end while]
(3)for (expr1;expr2;expr3)
和C差不多的,在这里不再详细介绍。
7.在上例中,用了两个for循环语句,第一个用来将数据库中的值读到一个数组中,第二个用来将数组中
的值显示出来。注意第二个for循环的“$i=$i-1;”这是因为在第一个循环后变量$i的值已经自加了1;
所以从数组中取值时,应该减去1。
8.PHP中字符串的相加用“.”,相当于ASP中(VB语法)的“+”或“&”。
9.所以,上面代码实现的功能就是从数据库中读出数据,并显示出来。
下面,我们来向数据库中添加一条记录,先看代码[ 例二 ]:
<?
$id=mysql_connect(‘localhost’,’root’,’adminpassword’);
$db=mysql_select_db(‘gsbook’,$id);
$sql=’insert into gsbook values(‘.chr(39).$nickname.chr(39).’)’;
if (mysql_query($sql,$db)>0)
{
echo “OK”;
}
else
{
echo “Failed!”;
}
?>
简单说明: 1.对于熟悉SQL语句的朋友,看了例一的简单介绍后一定知道例二的功能。
发表回复