大致上就是簡單介紹一下用運用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的函數,
來完成資料的新增,修改,與刪除了,
如何撰寫,我會在下一篇教學說明

 

 

smartPG 發表在 痞客邦 PIXNET 留言(3) 人氣()


留言列表 (3)

發表留言
  • 李韻紫
  • 請問controller目錄是自己另外建的嗎?謝謝
  • 抱歉現在才看到留言,EMAIL通知不知道啥時被取消了

    我印象是抓回來就有了

    smartPG 於 2012/05/30 21:07 回覆

  • 王富民
  • 我是CodeIgniter初學者,能夠有中文的快速實作教學,實在太好了,您的說明簡單扼要, 感謝您! 最近要學的東西太多了, 如逐一去看官方手冊會累死!
  • 訪客
  • 操你媽的死宅男
    你他媽的去死一死好了