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