基于Codeigniter框架實(shí)現(xiàn)的student信息系統(tǒng)站點(diǎn)動(dòng)態(tài)發(fā)布功能詳解
本文實(shí)例講述了基于Codeigniter框架實(shí)現(xiàn)的student信息系統(tǒng)站點(diǎn)動(dòng)態(tài)發(fā)布功能。分享給大家供大家參考,具體如下:
既然是動(dòng)態(tài)站點(diǎn),肯定有數(shù)據(jù)庫(kù)表的存在,在此不廢話,下面我們來(lái)看一下數(shù)據(jù)庫(kù)表:
CREATE TABLE IF NOT EXISTS `student`(
//主鍵id
`id` int(11) NOT NULL AUTO_INCREMENT,
//學(xué)生姓名
`s_name` varchar(64) NOT NULL,
//學(xué)生家長(zhǎng)的姓名
`p_name` varchar(64) NOT NULL,
//學(xué)生的家庭住址
`address` varchar(100) NOT NULL,
//所在城市
`city` varchar(30) NOT NULL,
//所在國(guó)家
`state` varchar(30) NOT NULL,
//所在地區(qū)的郵政編碼
`zip` varchar(20) NOT NULL,
//電話
`phone` varchar(15) NOT NULL,
//郵件
`email` varchar(20) NOT NULL,
//主鍵設(shè)置
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
*注:在此我有兩個(gè)地方需要解釋一下:
1."IF NOT EXISTS":如果數(shù)據(jù)在創(chuàng)建表的時(shí)候,在前面加上了"IF NOT EXISTS",那就表明即使此表已經(jīng)存在,也會(huì)執(zhí)行成功;
2."ENGINE=INNODB":這個(gè)是數(shù)據(jù)庫(kù)的引擎設(shè)置,常用mysql數(shù)據(jù)庫(kù)引擎有ISAM,MYISAM,HEAP等;
具體參考資料:http://baike.baidu.com/view/68455.htm
在創(chuàng)建完數(shù)據(jù)表之后,我們?cè)賮?lái)看一下數(shù)據(jù)庫(kù)的連接。打開(kāi).\application\config\database.php文件,在內(nèi)設(shè)置數(shù)據(jù)庫(kù)變量參數(shù),在.\application\config\config.php文件內(nèi)設(shè)置基本的URL,對(duì)于我的基本url是:http://localhost/codeigniter/
下面我們來(lái)看看mvc思想架構(gòu)的設(shè)計(jì)
首先打開(kāi).application\controllers\文件目錄,在里面創(chuàng)建一個(gè)student.php控制器:
student.php
在此我們先來(lái)通過(guò)student這個(gè)控制器來(lái)測(cè)試一下,打印出helloworld,記住訪問(wèn)路徑是:http://localhost/codeigniter/index.php/student/index
class student extends CI_Controller{
//student controller construct
public function __construct(){
parent::__construct();
}
//index test function
public function index(){
echo "helloworld";
}
}
it output: helloworld
下面我們來(lái)?yè)Q一下,看看下面這段code:
class student extends CI_Controller{
//student controller
public function __construct(){
parent::__construct();
}
//define a array,name is arraydata, it have three parameters
protected $arraydata=array(
'title'=>'Classroom:Home page',
'headline'=>'welcome to the classroom Mangement System',
'include'=>'student_index'
);
//index function
public function index(){
$this->load->view('template',$this->arraydata);
}
}
這段代碼需要一個(gè)視圖,template.php
template.php:
<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Strict//EN' 'http://www.w3.org/TR/html4/strict.dtd'> <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'> <title><?php echo $title; ?></title> </head> <body> <h1><?php echo $headline; ?></h1> <?php $this->load->view($include)?> </body> </html>
其中:
this−>load−>view(include);
包含的是另外一個(gè)視圖文件studen_index.php文件
student_index.php:
<p>Congratulations. Your initial setup is complete!</p>
聯(lián)合輸出:
welcome to the classroom Mangement System Congratulations. Your initial setup is complete!
數(shù)據(jù)的CURD
C 控制器
先來(lái)看看數(shù)據(jù)的增加過(guò)程,在student控制器中增加一個(gè)add()方法
class student extends CI_Controller{
//student controller
public function __construct(){
parent::__construct();
}
//new add function
public function add(){
$this->load->helper('form');
//display information for the view
$data['title']='Classroom:Add Page';
$data['headline']='Add data';
$data['include']='student_add';
//upload view
$this->load->view('template',$data);
}
//create function
public function create(){
$this->load->helper('url');
$this->load->model('MStudent','',TRUE);
$this->MStudent->addData($_POST);
redirect('student/add','reflesh');
}
//update function
public function update(){
//upload codeigniter library
$this->load->library('table');
$this->load->model('MStudent','',TRUE);
$student_query=$this->MStudent->updateData();
$update_table=$this->table->generate($student_query);
//display information for the view
$data['title']='Classroom:Update Page';
$data['headline']='Update Page';
$data['include']='update_student';
$data['updatetable']=$update_table;
$this->load->view('template',$data);
}
//index function
public function index(){
$data['title']='Classroom:Home page';
$data['headline']='welcome to classroom Mangement System';
$data['include']='student_index';
$this->load->view('template',$this->arraydata);
}
}
V 視圖
template .php
<html>
<head>
<title><?php echo $title;?></title>
</head>
<body>
<h1><?php echo $headline ?></h1>
<?php $this->load->view($include)?>
</body>
</html>
student_add.php
<?php
echo form_open('student/create');
$field_name=array('s_name','p_name','address','city','state','zip','phone','email');
foreach($field_name as $value){
echo "<p>".$value.":"
echo form_input(array('name'=>$value));
echo "</p>"
}
form_submit('','Add');
form_close();
?>
update_student.php
<?php echo $updatetable; ?>
M 模型
class MStudent extends CI_Model{
public function addData($data){
$this->db->insert('student',$data);
}
public function updateData(){
$this->db->get('student');
}
}
更多關(guān)于CodeIgniter相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《php優(yōu)秀開(kāi)發(fā)框架總結(jié)》、《ThinkPHP入門(mén)教程》、《ThinkPHP常用方法總結(jié)》、《Zend FrameWork框架入門(mén)教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門(mén)教程》、《php+mysql數(shù)據(jù)庫(kù)操作入門(mén)教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家基于CodeIgniter框架的PHP程序設(shè)計(jì)有所幫助。
- php實(shí)現(xiàn)仿寫(xiě)CodeIgniter的購(gòu)物車(chē)類(lèi)
- Codeigniter購(gòu)物車(chē)類(lèi)不能添加中文的解決方法
- CodeIgniter采用config控制的多語(yǔ)言實(shí)現(xiàn)根據(jù)瀏覽器語(yǔ)言自動(dòng)轉(zhuǎn)換功能
- CI(CodeIgniter)框架中的增刪改查操作
- CodeIgniter啟用緩存和清除緩存的方法
- Codeigniter(CI)框架分頁(yè)函數(shù)及相關(guān)知識(shí)
- CodeIgniter輔助函數(shù)helper詳解
- Codeigniter注冊(cè)登錄代碼示例
- Codeigniter實(shí)現(xiàn)處理用戶登錄驗(yàn)證后的URL跳轉(zhuǎn)
- 基于CI(CodeIgniter)框架實(shí)現(xiàn)購(gòu)物車(chē)功能的方法
相關(guān)文章
Zend Framework入門(mén)教程之Zend_View組件用法示例
這篇文章主要介紹了Zend Framework中Zend_View組件用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Zend_View組件視圖操作的相關(guān)技巧與注意事項(xiàng),需要的朋友可以參考下2016-12-12
Laravel 5框架學(xué)習(xí)之向視圖傳送數(shù)據(jù)(進(jìn)階篇)
上篇文章我們介紹了Laravel5框架中如何向視圖中傳送數(shù)據(jù),今天我們來(lái)研究下如何向視圖中傳送array,非常的詳細(xì),推薦給有需要的小伙伴參考下。2015-04-04
yii2實(shí)現(xiàn)分頁(yè),帶搜索的分頁(yè)功能示例
本篇文章主要介紹了yii2實(shí)現(xiàn)分頁(yè),帶搜索的分頁(yè)功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01
Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作示例
這篇文章主要介紹了Thinkphp5.0 框架實(shí)現(xiàn)控制器向視圖view賦值及視圖view取值操作,結(jié)合實(shí)例形式分析了thinkPHP控制器向視圖傳值及從視圖取值相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
PHP將字符串首字母大小寫(xiě)轉(zhuǎn)換的實(shí)例
下面小編就為大家?guī)?lái)一篇PHP將字符串首字母大小寫(xiě)轉(zhuǎn)換的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
TP5(thinkPHP5框架)基于bootstrap實(shí)現(xiàn)的單圖上傳插件用法示例
這篇文章主要介紹了TP5(thinkPHP5框架)基于bootstrap實(shí)現(xiàn)的單圖上傳插件用法,結(jié)合實(shí)例形式分析了thinkPHP5框架結(jié)合bootstrap實(shí)現(xiàn)圖片上傳相關(guān)布局與控制器操作技巧,需要的朋友可以參考下2019-05-05
ThinkPHP中的系統(tǒng)常量和預(yù)定義常量集合
這篇文章主要介紹了ThinkPHP系統(tǒng)常量和預(yù)定義常量,需要的朋友可以參考下2014-07-07
tp5.1框架數(shù)據(jù)庫(kù)子查詢(xún)操作實(shí)例分析
這篇文章主要介紹了tp5.1框架數(shù)據(jù)庫(kù)子查詢(xún)操作,結(jié)合實(shí)例形式分析了tp5.1框架數(shù)據(jù)庫(kù)子查詢(xún)相關(guān)原理、操作實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下2020-05-05
Zend Framework+smarty用法實(shí)例詳解
這篇文章主要介紹了Zend Framework+smarty用法,結(jié)合實(shí)例形式詳細(xì)分析了Zend Framework框架整合Smarty模板的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03

