查看: 1476|回复: 0

[PHP学习] 基于Codeigniter框架实现的student信息系统站点动态发布功能详解

发表于 2018-2-7 08:00:03

本文实例讲述了基于Codeigniter框架实现的student信息系统站点动态发布功能。分享给大家供大家参考,具体如下:

既然是动态站点,肯定有数据库表的存在,在此不废话,下面我们来看一下数据库表:

  1. CREATE TABLE IF NOT EXISTS `student`(
  2. //主键id
  3. `id` int(11) NOT NULL AUTO_INCREMENT,
  4. //学生姓名
  5. `s_name` varchar(64) NOT NULL,
  6. //学生家长的姓名
  7. `p_name` varchar(64) NOT NULL,
  8. //学生的家庭住址
  9. `address` varchar(100) NOT NULL,
  10. //所在城市
  11. `city` varchar(30) NOT NULL,
  12. //所在国家
  13. `state` varchar(30) NOT NULL,
  14. //所在地区的邮政编码
  15. `zip` varchar(20) NOT NULL,
  16. //电话
  17. `phone` varchar(15) NOT NULL,
  18. //邮件
  19. `email` varchar(20) NOT NULL,
  20. //主键设置
  21. PRIMARY KEY(`id`)
  22. )ENGINE=INNODB DEFAULT CHARSET=UTF8 AUTO_INCREMENT=1;
复制代码

*注:在此我有两个地方需要解释一下:

1."IF NOT EXISTS":如果数据在创建表的时候,在前面加上了"IF NOT EXISTS",那就表明即使此表已经存在,也会执行成功;

2."ENGINE=INNODB":这个是数据库的引擎设置,常用mysql数据库引擎有ISAM,MYISAM,HEAP等;

具体参考资料:http://baike.baidu.com/view/68455.htm

在创建完数据表之后,我们再来看一下数据库的连接。打开.\application\config\database.php文件,在内设置数据库变量参数,在.\application\config\config.php文件内设置基本的URL,对于我的基本url是:http://localhost/codeigniter/

下面我们来看看mvc思想架构的设计

首先打开.application\controllers\文件目录,在里面创建一个student.php控制器:

student.php

在此我们先来通过student这个控制器来测试一下,打印出helloworld,记住访问路径是:http://localhost/codeigniter/index.php/student/index

  1. class student extends CI_Controller{
  2. //student controller construct
  3. public function __construct(){
  4. parent::__construct();
  5. }
  6. //index test function
  7. public function index(){
  8. echo "helloworld";
  9. }
  10. }
复制代码

it output: helloworld

下面我们来换一下,看看下面这段code:

  1. class student extends CI_Controller{
  2. //student controller
  3. public function __construct(){
  4. parent::__construct();
  5. }
  6. //define a array,name is arraydata, it have three parameters
  7. protected $arraydata=array(
  8. 'title'=>'Classroom:Home page',
  9. 'headline'=>'welcome to the classroom Mangement System',
  10. 'include'=>'student_index'
  11. );
  12. //index function
  13. public function index(){
  14. $this->load->view('template',$this->arraydata);
  15. }
  16. }
复制代码

这段代码需要一个视图,template.php

template.php:

  1. <!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Strict//EN' 'http://www.w3.org/TR/html4/strict.dtd'>
  2. <html>
  3. <head>
  4. <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
  5. <title><?php echo $title; ?></title>
  6. </head>
  7. <body>
  8. <h1><?php echo $headline; ?></h1>
  9. <?php $this->load->view($include)?>
  10. </body>
  11. </html>
复制代码

其中:

  1. this?>load?>view(include);
复制代码

包含的是另外一个视图文件studen_index.php文件

student_index.php:

  1. <p>Congratulations. Your initial setup is complete!</p>
复制代码

联合输出:

  1. welcome to the classroom Mangement System
  2. Congratulations. Your initial setup is complete!
复制代码

数据的CURD

C 控制器

先来看看数据的增加过程,在student控制器中增加一个add()方法

  1. class student extends CI_Controller{
  2. //student controller
  3. public function __construct(){
  4. parent::__construct();
  5. }
  6. //new add function
  7. public function add(){
  8. $this->load->helper('form');
  9. //display information for the view
  10. $data['title']='Classroom:Add Page';
  11. $data['headline']='Add data';
  12. $data['include']='student_add';
  13. //upload view
  14. $this->load->view('template',$data);
  15. }
  16. //create function
  17. public function create(){
  18. $this->load->helper('url');
  19. $this->load->model('MStudent','',TRUE);
  20. $this->MStudent->addData($_POST);
  21. redirect('student/add','reflesh');
  22. }
  23. //update function
  24. public function update(){
  25. //upload codeigniter library
  26. $this->load->library('table');
  27. $this->load->model('MStudent','',TRUE);
  28. $student_query=$this->MStudent->updateData();
  29. $update_table=$this->table->generate($student_query);
  30. //display information for the view
  31. $data['title']='Classroom:Update Page';
  32. $data['headline']='Update Page';
  33. $data['include']='update_student';
  34. $data['updatetable']=$update_table;
  35. $this->load->view('template',$data);
  36. }
  37. //index function
  38. public function index(){
  39. $data['title']='Classroom:Home page';
  40. $data['headline']='welcome to classroom Mangement System';
  41. $data['include']='student_index';
  42. $this->load->view('template',$this->arraydata);
  43. }
  44. }
复制代码

V 视图

template .php

  1. <html>
  2. <head>
  3. <title><?php echo $title;?></title>
  4. </head>
  5. <body>
  6. <h1><?php echo $headline ?></h1>
  7. <?php $this->load->view($include)?>
  8. </body>
  9. </html>
复制代码

student_add.php

  1. <?php
  2. echo form_open('student/create');
  3. $field_name=array('s_name','p_name','address','city','state','zip','phone','email');
  4. foreach($field_name as $value){
  5. echo "<p>".$value.":"
  6. echo form_input(array('name'=>$value));
  7. echo "</p>"
  8. }
  9. form_submit('','Add');
  10. form_close();
  11. ?>
复制代码

update_student.php

  1. <?php
  2. echo $updatetable;
  3. ?>
复制代码

M 模型

  1. class MStudent extends CI_Model{
  2. public function addData($data){
  3. $this->db->insert('student',$data);
  4. }
  5. public function updateData(){
  6. $this->db->get('student');
  7. }
  8. }
复制代码

更多关于CodeIgniter相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优秀开发框架总结》、《ThinkPHP入门教程》、《ThinkPHP常用方法总结》、《Zend FrameWork框架入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于CodeIgniter框架的PHP程序设计有所帮助。

您可能感兴趣的文章:

  • Cisco 路由器动态和静态地址转换
  • 在CODEIGNITER中 在CI中引入外部的JS与CSS呢
  • apache+codeigniter 通过.htcaccess做动态二级域名解析
  • php之CodeIgniter学习笔记
  • 解析CodeIgniter自定义配置文件
  • CI(CodeIgniter)框架介绍
  • CI(CodeIgniter)框架配置
  • CI(CodeIgniter)框架中的增删改查操作
  • Codeigniter注册登录代码示例
  • CodeIgniter模板引擎使用实例
  • Codeigniter框架的更新事务(transaction)BUG及解决方法
  • Codeigniter(CI)框架分页函数及相关知识
  • CI框架给视图添加动态数据


回复

使用道具 举报