革命尚未勝利~我們接著來。需要對上面進行點補充:要先創建一個數據庫才能導入哦!
為了區分和方便講解,我把數據庫命名為list,把數據表命名為addr_list,還是把完整的SQL語句寫出來吧。
首先創建數據庫 list:
CREATE DATABASE `list` ;
然後創建數據表 addr_list:
復制內容到剪貼板 CREATE TABLE `addr_list` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(10) NOT NULL,
`sex` tinyint(1) NOT NULL,
`mobi` varchar(11) NOT NULL,
`email` varchar(50) NOT NULL,
`addr` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
好,我們現在來做網頁+寫程序吧:
input.php 文件代碼:
<form id="form1" name="form1" method="post" action="post.php">
<p>姓名:<input name="name" type="text" id="name" /></p>
<p>
性別:<input type="radio" name="sex" value="0" />女士
<input type="radio" name="sex" value="1" />先生
</p>
<p>手機:<input name="mobi" type="text" id="mobi" /></p>
<p>郵箱:<input name="email" type="text" id="email" /></p>
<p>地址:<input name="addr" type="text" id="addr" /></p>
<p>
<input type="submit" name="Submit" value="添加" />
<input type="reset" name="Submit2" value="重寫" />
</p>
</form>
說明:因為只有HTML代碼,所以你要存成html格式的話也是可以的。不要被那些亂七八糟的<p></p>迷惑哦,我們要看的關鍵字是form還 有input。form主要看method和action,method是方法,有post和get等,關於這個你可以自己去了解一下;action是動作,也就是傳送值得的目標頁。通俗一點就是點按鈕會跑到的頁面。那麼,input要注意的是name和id,要定義一些好記的名字。為了方便記憶,我把表單名和數據庫的字段名定義成一樣的了,這並不是必須的,但還是很有必要的。最後注意的是sex,別想歪了,我說的是性別了。一定要注意它的name是一樣的,但是value不同哦。我們前面已經說過,用0表示女,用1表示男。這個表單建議用些工具去做,比如DW等,幾秒種就可以搞定了。用手寫的話,需要有一定的html語言基礎。如果使用utf8,一定要記得用工具把所有網頁都另存為utf8的哦。
post.php 文件代碼:(不完整)
<?php
//設置表單變量
$name = $_POST['name'];
$sex = $_POST['sex'];
$mobi = $_POST['mobi'];
$email = $_POST['email'];
$addr = $_POST['addr'];
//測試是否傳值
echo $name . '<br>';
echo $sex . '<br>';
echo $mobi . '<br>';
echo $email . '<br>';
echo $addr . '<br>';
?>
說明:這是一個不完整的post.php代碼,我們先寫一些簡單的腳本來測試input.php的值是否成功的傳到post.php頁。“設置表單變量”不是必須的,但也是很有必要的,以免發生意外狀況,呵呵。你現在所看到的變量,如$name,就是前面input.php裡的name了。比如說:<input name="mobi" type="text" id="mobi" /> (input.php頁),裡面的name="mobi", 就是這裡的$mobi (post.php頁 )這個應該沒什麼問題吧?那麼就運行input.php頁,隨便填寫些信息,然後按“添加”,如果按了“添加”之後,轉到了post.php頁,並且正確的顯示了你所填寫的內容,那麼就表示傳值就成功了,我們就可以接著網下做了。小提示:echo為打印輸出,類似$name以$開頭的都是變量,<br>換行。echo是一個語言結構,並非函數,這點要記得哦。
OK,傳值成功了,那麼我們要做的就把值寫進數據庫吧。在改進post.php之前,我們的先寫一個conn.php文件,並且調用它進行數據庫的一些操作。那麼我們來看看這段簡陋的代碼吧:
conn.php 文件代碼:
<?php
//設置數據庫變量
$db_host = 'localhost'; //數據庫主機名稱,一般都為localhost
$db_user = 'root'; //數據庫用戶帳號,根據個人情況而定
$db_passw = '123456'; //數據庫用戶密碼,根據個人情況而定
$db_name = 'list'; //數據庫具體名稱,以剛才創建的數據庫為准
//連接數據庫
$conn = mysql_connect($db_host,$db_user,$db_passw) or die ('數據庫連接失敗!');
//設置字符集,如utf8和gbk等,根據數據庫的字符集而定
mysql_query("set names 'utf8'");
//選定數據庫
mysql_select_db($db_name,$conn) or die('數據庫選定失敗!');
//執行SQL語句(查詢)
$result = mysql_query($sql) or die('數據庫查詢失敗!');
?>
說明:這段代碼本身並沒有什麼作用,因為它要經常用到,所以只是為了減少工作量不必重復寫它,所以把它專門放在一個文件裡,這樣就可以隨時調用了。這裡並不需要多講解什麼,你只需要根據個人情況改一下“設置數據庫變量”和“設置字符集”的部分就可以了。不要嘗試單獨的運行conn.php這個腳本,肯定會出錯的,因為我們還沒開始設置$sql呢
OK,數據庫的基本操作搞定了。我們來開始寫完整版的post.php吧,呵呵。
post.php 文件代碼:(完整版)
<?php
//設置表單變量
$name = $_POST['name'];
$sex = $_POST['sex'];
$mobi = $_POST['mobi'];
$email = $_POST['email'];
$addr = $_POST['addr'];
//需要執行的SQL語句(這裡是插入數據功能)
$sql = "INSERT INTO `addr_list`
( `id` , `name` , `sex` , `mobi` , `email` , `addr` )
VALUES
(NULL , '$name', '$sex', '$mobi', '$email', '$addr')";
//調用conn.php文件進行數據庫操作
require('conn.php');
//提示操作成功信息,注意:$result存在於conn.php文件中,被調用出來
if($result)
{
echo '恭喜,操作成功!<p>';
}
?>
[<a href="show.php">查看通訊錄</a>] [<a href="input.php">繼續添加</a>]
說明:終於見到post.php的完整版了,夠簡陋了吧?呵呵。這裡需要注意的是$sql中的SQL語句,如果不會SQL語句的話,可以用phpMyadmin去扣,具體怎麼扣,就請各位自己google一下咯,有時間的話再另寫了。建議還是學學SQL語法比較好一些。接著看$sql,id對應NULL,前面說過,id建立以後就不用管了,所以可以留空值,接下,數據庫的name字段對應$name變量,以此類推就可以咯。寫出你需要執行的語句,然後調用conn.php執行就可以了。就這麼簡單。為了使界面人性化一點,我們應該加些操作提示和相關鏈接。這樣我們的post.php就算完成了,呵呵,超簡陋。不過用來學習,應該追求簡陋比較好,呵呵。
OK,現在我們就來做show.php,顯示頁吧。已經完成獎將近一半的工作咯,再堅持下就大功告成了。
show.php 文件代碼:
[<a href="input.php">繼續添加</a>]
<?php
//這裡是PHP代碼
$sql = "SELECT * FROM `addr_list`";//需要執行的SQL語句(這裡是浏覽數據功能)
require('conn.php'); //調用conn.php文件,執行數據庫操作
?>
<!---這裡HTML代碼,創建一個表格--->
<table width="100%" border="1">
<tr>
<th bgcolor="#CCCCCC" scope="col">姓名</th>
<th bgcolor="#CCCCCC" scope="col">性別</th>
<th bgcolor="#CCCCCC" scope="col">手機</th>
<th bgcolor="#CCCCCC" scope="col">郵箱</th>
<th bgcolor="#CCCCCC" scope="col">地址</th>
</tr>
<?php
//這裡是PHP代碼
while($row = mysql_fetch_row($result)) //循環開始
{
//判斷性別
if($row[2]==0)
{
$sex = '女士';
}
else
{
$sex = '先生';
}
?>
<!---被循環的HTML表格中帶有PHP代碼--->
<tr>
<td><?php echo $row[1]; ?></td>
<td><?php echo $sex; ?></td>
<td><?php echo $row[3]; ?></td>
<td><?php echo $row[4]; ?></td>
<td><?php echo $row[5]; ?></td>
</tr>
<?php
}
?>
</table>
說明:這段代碼就極度扯蛋了,因為這裡我們不可能講到諸如Smarty和PHPlib之類的模板引擎,所以只能是PHP夾著HTML丟在同一個文件裡面了,但是真正開發的時候可千萬不能這麼干啊,不然我就成千古罪人了。形勢所迫,形勢所迫,大家將就一下吧。也不是很難看懂,抓住一個原則 <?php 這裡裡面的就是PHP代碼 ?>,反之,外面的就是HTML代碼咯。著重講一下while($row = mysql_fetch_row($result)) 吧,在這裡mysql_fetch_row($result)將我們執行SQL語句獲得結果集保存為數組。當然你不需要急著去了解什麼叫做數組,你只需要知道,它幫我們的字段排好隊了,記得從0開始排的哦:0->id; 1->name; 2->sex; 3->mobi; 4->email; 5->addr 這樣一目了然了,我們需要調用的時候就用$row[X]來調用,X就是隊列號,比如調用name,就是$row[1],因為我們不要求顯示id,所以上面的代碼中沒有$row[0],那為什麼多了$sex呢?因為我們不能用數字來顯示性別吧,所以加了個條件句:如果$row[2]等於0,那麼就顯示"女士",否則就顯示"先生"。當然你可以隨便改這個性別的稱呼了,比如0顯示夏娃,1顯示亞當,呵呵。
OK,那麼就先到這裡吧。還剩下兩部分:修改和刪除,我們下次搞定它們。看起來快,寫起來就不是那麼容易了,我手都快脫臼了,呵呵。