非常抱歉,關於部落格內 PHP 的部分目前已經停止維護,因本人已經很久沒有寫 PHP ,且文章中所使用的 PHP 版本偏舊,希望有心學習 PHP 的朋友們,可以參考 Codecademy 的課程,或近一步嘗試 Laravel 這個 PHP 框架(可透過 laracasts 學習),若有找不到錯的學習資源也歡迎在留言串分享,方便有需要的人能夠有更多學習的管道!
在這一堂課中,我們會開始接觸到資料庫,並且學習透過語法,把需要的資料以網頁的方式加以呈現。
結果可以看這裡。
mysql_connect("主機名稱","帳號","密碼"):連接伺服器
mysql_select_db("資料庫名稱"):選擇欲讀取的資料庫名稱
mysql_query("set names utf8"):將資料設為utf8格式(才能讀取中文)
mysql_query("select * from 資料庫名稱"):從某資料庫中讀取所有的(*)資料表
mysql_num_rows( ):回傳我們的資料有幾個列
mysql_fecth_rows( ):讀取該資料表中列的資料,回傳的是一列資料。
mysql_select_db("資料庫名稱"):選擇欲讀取的資料庫名稱
mysql_query("set names utf8"):將資料設為utf8格式(才能讀取中文)
mysql_query("select * from 資料庫名稱"):從某資料庫中讀取所有的(*)資料表
mysql_num_rows( ):回傳我們的資料有幾個列
mysql_fecth_rows( ):讀取該資料表中列的資料,回傳的是一列資料。
建立資料庫
因為之前安裝過虛擬伺服器的關係,因此我們只要在我們的瀏覽列輸入localhost,就會出現伺服器的首頁
點選phpMyAdmin Database這個選項,接著輸入帳號和密碼,帳號就是root,密碼是之前安裝軟體時輸入的密碼(如果忘記密碼的話,就只能把軟體重灌一次了)
進入管理頁面
這裡我們要開始建立一個新的資料庫,名字取做contact
接著我們要建立資料表,資料表的概念有點像是excel裡面的頁面表(sheet),而一個資料庫就有點像是一個excel檔,這裡我們同樣把資料表的名稱取做contact。
在建立資料表的時候,我們就要決定我們有多少個欄位數目(這就很像做實驗的時候,我們有幾個變項)。
接著就可以依序輸入欄位名稱
欄位型態的部分,選擇適合的型態(這裡就像是在定義變項是屬於數值、名義或類別的感覺),每個型態的意義則透過google很容易就可以查到。
接著輸入該欄位可容納的長度
點到旁邊的資料表(contact)就可以看到我們剛剛輸入的欄位資料了
點選新增,在值的地方填入,就可以填入資料,這裡我們可以隨便輸入幾筆資料。
點選上方的瀏覽,就可以看到剛剛輸入的資料
在網頁中顯示資料庫的資料
再來我們要練習在網頁中顯示資料庫裡面的資料。
這裡我們會用到三個語法分別是mysql_connect、mysql_select_db、mysql_query,並把選取出來資料取叫做變數data
我們利用新的函式mysql_fetech_row(),來擷取data當中的一列資料,並把它命名為變項rs。接著讓我們叫出資料來看資料的樣子
呈現出來的樣子會像這樣:
data其實就是一個陣列,就像一個表格一樣,所以它只會顯示「resource id #3」,表示我們這裡面有三個欄位
我們要先從「設計」中製作一個表格
填入欄位名稱
接著,在切換到程式碼的地方,分別去擷取第一列當中的各個資料
呈現出來的結果就會向這樣子
如果我們想要呈現第二列的資料,只需要在複製一次這短語法就可以了,當它第二次讀到mysql_fetch_row時,就會回傳第二列的資料;當它讀到第三次,就會回傳第三列的資料,以此類推。
結果就呈現成這樣
因此,我們可以用回圈的方式,告訴它我們要執行幾次,如果有三列,我們就讓它到$i<=3就可以了,而更簡單的作法,是直接請他抓我們有幾列,透過mysql_num_rows(),就可以達到
之後你只要資料繼續增加,不需要改程式碼也能辦到。
這段完整的程式碼如下:
<?php mysql_connect("localhost","root","12345678");//連結伺服器 mysql_select_db("contact");//選擇資料庫 mysql_query("set names utf8");//以utf8讀取資料,讓資料可以讀取中文 $data=mysql_query("select * from contact");//從contact資料庫中選擇所有的資料表 ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="https://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>資料庫網頁建置</title> </head> <body> <p> </p> <table width="700" border="1"> <tr> <td>姓名</td> <td>性別</td> <td>電話</td> <td>手機</td> <td>地址</td> </tr> <?php for($i=1;$i<=mysql_num_rows($data);$i++){ $rs=mysql_fetch_row($data); ?> <tr> <td><?php echo $rs[0]?></td> <td><?php echo $rs[1]?></td> <td><?php echo $rs[2]?></td> <td><?php echo $rs[3]?></td> <td><?php echo $rs[4]?></td> </tr> <?php } ?> </table> <p> </p> </body> </html>
接下來,我們要練習更複雜的操作,也就是透過搜尋的方式,請電腦幫我篩選出符合資格的資料,為了要達到這個練習,我們要先使用馬老師提供的資料檔。
資料匯入的方法如下:
接下來,我們使用member這個資料表做練習。
因為欄位變多了,所以我們table的內容也要增加,同時要把mysql_query的地方改成讀取member這個資料表,程式碼最後會變成這樣:
<?php
mysql_connect("localhost","root","12345678");//連結伺服器
mysql_select_db("contact");//選擇資料庫
mysql_query("set names utf8");//以utf8讀取資料,讓資料可以讀取中文
$data=mysql_query("select * from member");//選擇從member資料表中讀取所有的資料
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>資料庫網頁建置</title>
</head>
<body>
<p>
</p>
<table width="700" border="1">
<tr>
<td >編號</td>
<td >姓名</td>
<td >性別</td>
<td >生日</td>
<td >地址</td>
<td >城市</td>
<td >國籍</td>
<td>郵遞區號</td>
<td >電話</td>
<td>備註</td>
</tr>
<?php
for($i=1;$i<=mysql_num_rows($data);$i++){
$rs=mysql_fetch_row($data);
?>
<tr>
<td><?php echo $rs[0]?></td>
<td><?php echo $rs[1]?></td>
<td><?php echo $rs[2]?></td>
<td><?php echo $rs[3]?></td>
<td><?php echo $rs[4]?></td>
<td><?php echo $rs[5]?></td>
<td><?php echo $rs[6]?></td>
<td><?php echo $rs[7]?></td>
<td><?php echo $rs[8]?></td>
<td><?php echo $rs[9]?></td>
</tr>
<?php
}
?>
</table>
<p> </p>
</body>
</html>
成功的話就會讀出很多的資料
結果可以看這裡
結果可以看這裡。
以上內容均為本人在馬老師雲端研究室學習所整理之筆記
非常詳細!!謝謝你!
回覆刪除謝謝,辛苦了!獲益良多
回覆刪除謝謝你們的肯定!有機會我再把這些筆記整理一下!
回覆刪除你好 看過你php系列的文章 簡單易懂 謝謝您~ 另外,我想請問如何將php網頁所輸入的資料存入phpmyadmin裏頭?
回覆刪除謝謝你的肯定!
刪除你可以參考這一篇文章(http://pjchender.blogspot.tw/2015/04/php-mysql-13.html),利用insert into就可以將資料寫入資料庫中。