最近凱甯大神帶我做了一個小網站,用了大概2-3周的時間就基本做好了。說實話,之前我對php完全不了解,隻知道有這麼一種程式設計語言,在做完這個網站之後就基本對php有了一個整體的認識,雖然很多細節還不是很清楚。下面就記錄一下我做這個網站的具體事項以及要注意的細節。
剛開始做的時候,我将w3school網站上php方面的知識點大緻過了一遍,其實看完之後,發現php和C還是挺像的,它的基礎知識和C如出一轍,隻是寫法不同,每個Controller裡面都有自己特有的函數,裡面有自己的資料類型、判斷、循環、排序等等(具體的看w3c,上面寫的很清楚....),感覺它和C++的類差不多,隻是php定義變量是var+$變量名,不需要指出它的資料類型,而C要事先指明它是int型還是char型。之後用的資料基本是《CodeIgniter2.0中文手冊》(我用的是CI架構)。
MVC架構
不要說我土...在此之前我是不知道mvc是什麼玩意的。現在才發現php最大的特點之一就是MVC,MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫。MVC開始是存在于桌面程式中的,M是指業務模型,V是指使用者界面,C則是控制器,使用MVC的目的是将M和V的實作代碼分離,進而使同一個程式可以使用不同的表現形式。比如一批統計資料可以分别用柱狀圖、餅圖來表示。C存在的目的則是確定M和V的同步,一旦M改變,V應該同步更新。

連接配接資料庫
連接配接資料庫就一句話$this->load->database();然後在config/databases.php下面配置我們的資料庫就ok啦。
我們隻需要看這麼幾項,hostname是主機名,username是使用者名,password是資料庫密碼(預設是空的),database是你需要使用的資料庫名稱,其他預設就好了。
資料庫的增删改查
function tb_add(){
$data['姓名']=$this->input->post('name');
$data['電話']=$this->input->post('phone');
$data['郵箱']=$this->input->post('email');
$this->db->insert('tb_order',$data);
redirect('tb_order/showorder', 'refresh');
}
function tb_delete($id){
$this->db->where('id',$id);
$this->db->delete('tb_order');
redirect('tb_order/show_database', 'refresh');
}
function tb_update($id){
$query= $this->db->get_where('tb_order',array('id' => $id));
$data['result']=$query->result();
$this->load->view('order/order_update',$data);
}
function tb_com_update(){
$id = $this->input->post('id');
$data = array(//把post數組的值封裝到新的數組中為了下面跟新操作用
'姓名'=>$this->input->post('name'),
'電話'=>$this->input->post('phone' ),
‘郵箱'=>$this->input->post('email' )
);
if(!empty($id) && (count($data) > 1)){
$this->db->where('id',$id);//同上準備where條件
$this->db->update('tb_order',$data);//更新操作
}
redirect('tb_order/show_database', 'refresh');
}
這就是資料庫的增、删、改。$this->input->post();這個方法就是接收用post方法從表單送出的資料,送出資料有兩種類型,一是get,二是post,不過通過 GET 方法從表單發送的資訊對任何人都是可見的,而post對其他人是不可見的,一般用post居多。
亂碼問題
在view裡面可以加這麼一句話<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />這是設定字元集為utf-8,可以解決亂碼問題。另外,資料庫裡面也要設定同樣的字元集,建議使用資料庫可視化編輯軟體,比如Navicat for MySQL等,然後将資料庫字元集設定為utf8 -- UTF-8 Unicode。
<!--EndFragment-->