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


Posted in PHP onMarch 23, 2017

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

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

CREATE TABLE IF NOT EXISTS `student`(
    //主键id
    `id` int(11) NOT NULL AUTO_INCREMENT,
    //学生姓名
    `s_name` varchar(64) NOT NULL,
    //学生家长的姓名
    `p_name` varchar(64) NOT NULL,
    //学生的家庭住址
    `address` varchar(100) NOT NULL,
    //所在城市
    `city`  varchar(30) NOT NULL,
    //所在国家
    `state` varchar(30) NOT NULL,
    //所在地区的邮政编码
    `zip`  varchar(20) NOT NULL,
    //电话
    `phone` varchar(15) NOT NULL,
    //邮件
    `email` varchar(20) NOT NULL,
    //主键设置
    PRIMARY KEY(`id`)
)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

class student extends CI_Controller{
    //student controller construct
    public function __construct(){
     parent::__construct();
    }
    //index test function
    public function index(){
     echo "helloworld";
    }
}

it output: helloworld

下面我们来换一下,看看下面这段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);
    }
}

这段代码需要一个视图,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);

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

student_index.php:

<p>Congratulations. Your initial setup is complete!</p>

联合输出:

welcome to the classroom Mangement System
Congratulations. Your initial setup is complete!

数据的CURD

C 控制器

先来看看数据的增加过程,在student控制器中增加一个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');
  }
}

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

PHP 相关文章推荐
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
PHP中读取照片exif信息的方法
Aug 20 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
php常量详细解析
Oct 27 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 PHP
PHP新手指南
Apr 01 PHP
php PDO实现的事务回滚示例
Mar 23 #PHP
降低PHP Redis内存占用
Mar 23 #PHP
使用Codeigniter重写insert的方法(推荐)
Mar 23 #PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 #PHP
PHP实现随机生成水印图片功能
Mar 22 #PHP
php session的应用详细介绍
Mar 22 #PHP
php 开发中加密的几种方法总结
Mar 22 #PHP
You might like
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP实现的oracle分页函数实例
2016/01/25 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
Laravel timestamps 设置为unix时间戳的方法
2019/10/11 PHP
ajax java 实现自动完成功能
2012/12/19 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
判断滚动条滑到底部触发事件(实例讲解)
2017/11/15 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
JavaScript惰性载入函数实例分析
2019/03/27 Javascript
python类和继承用法实例
2015/07/07 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python Django 命名空间模式的实现
2019/08/09 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
美国奢侈品购物平台:Orchard Mile
2018/05/02 全球购物
普通简短的个人自我评价
2014/02/15 职场文书
大学毕业感言200字
2014/03/09 职场文书
金融管理专业求职信
2014/07/10 职场文书
学校施工安全责任书
2015/01/29 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫