一、編程之前的分析
要做一個留言板,而且我們也決定了采用數據庫方式做,所以我們要從以下幾個步驟開始做:
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語句的朋友,看了例一的簡單介紹後一定知道例二的功能。