大致上就是簡單介紹一下用運用CodeIgniter開發網站的流程
跟開發過程中會比較常出現的程式片段
雖然這寫了多半只有我會看Orz
不過其他人看了有問題的話還是很歡迎留言回應,
我有時間的話一定會回答or做個補充
前置步驟:
在CodeIgniter官方網站閱讀CodeIgniter的簡介
準備好你的Apache+PHP+MySQL環境
下載CodeIgniter 1.7.2 並將system目錄與index.php上傳到工作目錄
檢視該目錄,確認CodeIgniter可以正常執行
你應該會看到如下的畫面
準備好了之後,我們就可以開始了
請注意,下面的教學會假設你有基礎的PHP MySQL概念
(真的只要一點點基礎就好,
因為我自己對PHP MySQL的熟悉度也是停留在"要用再查"的等級)
最好也要有點jQuery的概念,否則AJAX的部份可能會看不懂,
(雖說不懂也沒差就是)
另外最重要的當然希望你有瀏覽過CodeIgniter的官方網站,
把基本的精神瀏覽過一遍
畢竟,這篇教學是要帶你瀏覽過CodeIgniter的基礎用法,
沒先看過官方網站好像說不太過去:)
另外由於我Server架設在本機電腦上,
所以範例中的網址127.0.0.1請自行代換為你Server的網址
網站目標:
我的目標是設計一個網站,裡面可以讓我紀錄這季的動畫,
與動畫的基本簡介,還有一些我對動畫的簡短意見,
因為我很懶,所以我打算用AJAX達成無腦更新,
(若不是要達成這個功能的話,改用Blog發更方便-.-)
有了基本規劃後,就可以開始實做摟
1.建立基本框架
單純的CSS layout,這我也完全不熟..
反正就隨便拉一個表格出來就是
2.建立網站入口
先隨便想一個順眼的檔名吧,在這個範例裡面,我使用PG.php作為檔名,
在controller目錄下建立PG.php這個檔案,並且打入底下程式碼
<?php
class PG extends Controller
{
function index()
{
echo "success";
}
function test()
{
echo "success2";
}
}
?>
CodeIgniter的一大特色就是利用網址後面的目錄當作參數,
也就是說 如果你的controller PG.php裡面有A B 兩個函數,
那麼當你網址輸入index.php/PG/A/123/ABC的時候,
CodeIgniter就會呼叫PG.php裡面的A函數,並將參數1設定為123 參數2設定為ABC,
這時候網址列打入127.0.0.1/index.php/PG/
應該會呼叫PG.php下的index函數
打入127.0.0.1/index.php/PG/test/的話
則是會顯示success2,不是的話就要檢查哪邊出錯摟
3.建立資料庫
接下來為了完成我們layout出來的功能,請先建立好資料庫,
建立的結構可參考下圖:
注意到id這個欄位是我們的索引,
並且設定auto_increment屬性,
這樣以後插入新資料的動作都可以由MySQL為我們自動填入唯一的ID數值,
建立完資料庫之後,我們必須設定好CodeIgniter的資料庫設定,
在CodeIgniter中,就如同大多數的web app套件一樣,
我們在事前指定好一組資料庫的使用者名稱 密碼 與資料庫名稱,
以後我們就可以在程式裡面利用一行指令簡單的完成資料庫的讀取,
不用在每次連線的時候重新設定所有的參數,
簡單的說就是第一次麻煩點,以後統統快速秒殺拉~
設定檔路徑在system/application/config下
打開database.php 填入設定值
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "PG";
$db['default']['password'] = "XDDD";
$db['default']['database'] = "pg";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
這個..應該一看就知道是啥了,我就不多做說明惹,
要填入的屬性只有hostname username password database
設定完成後存檔,並且在程式裡面試著執行$this->load->database();
若是沒噴出錯誤訊息,就代表基本設定大致上是沒有問題的
4.建立view
所謂的view,就是在使用者端出現的顯示介面,
我們拿第一步驟畫出來的表格填入應有的參數
<?php foreach($query->result() as $row): ?>
<table width="80%" border="1" id="<?php echo $row->id; ?>">
<tr>
<td ><?php echo $row->name; ?></td>
<td ><?php echo $row->state; ?></td>
</tr>
<tr>
<td colspan="2" >簡介(顯示 / 隱藏)<br /><span ><?php echo$row-> intro; ?></span></td>
</tr>
<tr>
<td colspan="2" >短評<br /><span ><?php echo $row->cmt; ?></span></td>
</tr>
<tr>
<td>TAG:<span ><?php echo $row->tag; ?></span></td>
<td >目前評價:<span ><?php echo $row->rank; ?></span></td>
</tr>
</table>
<?php endforeach; ?>
$query是預計從controller部份傳過來的參數,
<?php foreach($query->result() as $row): ?>
到
endforeach那邊
是我根據資料庫查詢到的資料顯示這個表格,
$row->XXX 分別對應資料庫裡面的XXX欄位,
至於資料庫查詢的結果,要怎樣送到query裡面,
那又是另外一個故事了
我們交給controller負責噴資料出來送到$query參數裡面,
覺得這邊很難懂嗎
沒關係,在這邊就把結果背起來吧,
<?php foreach($query->result() as $row): ?>作為開頭
<?php endforeach; ?>作為結尾
就是可以針對每筆資料,輸出這兩行中間的東西,
另外資料表的欄位可以利用$row->XXX 讀取
以上完成後,我們就可以開始撰寫controller的函數,
來完成資料的新增,修改,與刪除了,
如何撰寫,我會在下一篇教學說明
留言列表