基于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 相关文章推荐
基于mysql的论坛(5)
Oct 09 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
PHP自定session保存路径及删除、注销与写入的方法
Nov 18 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
PHP解压tar.gz格式文件的方法
Feb 14 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
解决laravel 表单提交-POST 异常的问题
Oct 15 PHP
PHP SESSION跨页面传递失败解决方案
Dec 11 PHP
thinkphp5 路由分发原理
Mar 18 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
深入Memcache的Session数据的多服务器共享详解
2013/06/13 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
picLazyLoad 实现图片延时加载(包含背景图片)
2016/07/21 Javascript
使用JavaScript为一张图片设置备选路径的方法
2017/01/04 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
在python中获取div的文本内容并和想定结果进行对比详解
2019/01/02 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
Python的缺点和劣势分析
2019/11/19 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
简单了解python列表和元组的区别
2020/05/14 Python
使用Numpy对特征中的异常值进行替换及条件替换方式
2020/06/08 Python
Python eval函数介绍及用法
2020/11/09 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
用CSS3将你的设计带入下个高度
2009/08/08 HTML / CSS
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
好的演讲稿开场白
2013/12/30 职场文书
宿舍违规检讨书
2014/01/12 职场文书
经典英文广告词
2014/03/18 职场文书
组织鉴定材料
2014/06/02 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
2014年乡镇妇联工作总结
2014/12/02 职场文书
先进人物事迹材料
2014/12/29 职场文书
不同品牌、不同型号对讲机如何互相通联
2022/02/18 无线电
前端JS获取URL参数的4种方法总结
2022/04/05 Javascript