一个ci框架的小demo


最近在学习ci框架,作为一个初学者,在啃完一遍官方文档并也跟着官方文档的例程(新闻发布系统)做了一遍,决定在将之前练习PHP与MySQL数据库的用户管理系统再用ci框架实现一遍。

主要由三个简单的界面构成:


看起来很简单对不对!没有关系,这不重要~ 
接下来我们来看代码: 
ci的配置我就不用讲了哈,我的配置如下: 
database.php 配置文件

 'hostname' => 'localhost',
'username' => 'root',
'password' => 'root',
'database' => 'test',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',

一定要配置config.php中的base_url,原因你会知道的

$config['base_url'] = 'http://localhost:81/ciDemo/Code/';

接下来是控制器的代码: 
我建立了一个user.php的控制器,目录是application/controllers/user.php

<?php
/**
* 数据库的增删改查
*/
class User extends CI_controller
{ function __construct()
{
parent::__construct();
$this->load->model('user_model');
// $this->load->helper('url_helper');
$this->load->helper('url');
}
public function index()
{
// $this->load->model('user_model');
$arr = $this->user_model->getAll();
// var_dump($arr);
$data['title'] = 'Userlist'; $this->load->view('templates/header', $data);
$this->load->view('user/index',array('arr'=>$arr));
$this->load->view('templates/footer');
}
public function insert()
{
$this->load->helper('form'); $data['title'] = 'Create a new user'; // $this->load->model('user_model');
// $arr = array('uaername' => '111','password' => 'md5(222)' ); $this->load->view('templates/header', $data);
$this->load->view('user/adduser');
$this->load->view('templates/footer'); }
public function insert_ok()
{
// echo "join"; // if ($this->input->post('submit_user')) {
$arr = array(
'username' => $this->input->post('username'),
'password' => md5($this->input->post('password'))
);
$query = $this->user_model->user_insert($arr);
// var_dump($query);
if ($query) {
// echo "添加成功";
// $this->index();
redirect('user/index');
} else {
echo "添加失败";
}
// }
}
public function update()
{
$this->load->helper('form'); $data['title'] = 'Update user'; // $this->load->model('user_model');
// $arr = array('uaername' => '111','password' => 'md5(222)' );
$id = $this->uri->segment(3, 0);
// echo $id;
$arr = $this->user_model->user_select($id);
// var_dump($arr);
//怎么把指定ID的username传到视图中去
$this->load->view('templates/header', $data);
$this->load->view('user/editUser', array('get_username'=>$arr));
$this->load->view('templates/footer');
}
public function update_ok()
{
// $this->load->model('user_model');
// $arr = array('username' => 'kkk','password' => 'md5(333)' );
$arr = array(
'username' => $this->input->post('username'),
'password' => md5($this->input->post('password'))
);
// $id = $_GET['id'];
//怎么获取ID值?
$id = $this->uri->segment(3, 0);
$query = $this->user_model->user_update($id,$arr);
if ($query) {
// echo "删除成功";
// $this->index();
redirect('user/index');
} else {
echo "更新失败";
}
} public function delete()
{
$id = $this->uri->segment(3, 0);
// $this->load->model('user_model');
$query = $this->user_model->user_delete($id);
if ($query) {
// echo "删除成功";
// $this->index();
redirect('user/index');
} else {
echo "删除失败";
} }
// public function select()
// {
// // $this->load->model('user_model');
// $arr = $this->user_model->user_select();
// print_r($arr);
// echo $arr[0]->id;
// }
}

模型的代码: 
目录是application/models/user_model.php

<?php
/**
* 数据库增删改查......
*/
class User_model extends CI_Model
{
//构造函数
function __construct()
{
parent::__construct();
//connect to the database
$this->load->database();
//$this->load->insert($t_name,$data)
}
//所有数据
function getAll()
{
$res = $this->db->get('user');
return $res->result_array();
}
//增加数据
function user_insert($arr)
{
return $this->db->insert('user', $arr);
}
//更新数据
function user_update($id,$arr)
{
$this->db->where('id',$id);
return $this->db->update('user',$arr);
}
//删除数据
function user_delete($id)
{
$this->db->where('id',$id);
return $this->db->delete('user');
}
//查找数据
function user_select($id)
{
$this->db->where('id',$id);
$this->db->select('*');
$query = $this->db->get('user');
return $query->result_array();
} }

接下来是视图: 
用户列表的视图 application/views/user/index.php

<?php
// var_dump($arr);
?>
<h2>用户列表<a href="<?php echo site_url('user/insert');?>">添加用户</a></h2>
<table border="1" cellspacing="0" cellpadding="0" width="80%" bgcolor="#ABCDEF">
<tr>
<td>编号</td>
<td>用户名</td>
<td>操作</td>
</tr>
<?php $i=1; foreach($arr as $row):?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $row['username'];?></td>
<td><a href="<?php echo site_url().'/user/update/'.$row['id'];?>">更新</a>|<a href="<?php echo site_url().'/user/delete/'.$row['id'];?>">删除</a></td>
</tr>
<?php $i++; endforeach;?>
</table>

添加用户的视图:application/views/user/adduser.php

<!-- <h2>添加用户</h2> -->
<form action="<?php echo site_url("user/insert_ok");?>" method="post">
<?php //echo form_open('user/insert')?>
<table border="1" cellpadding="0" cellspacing="0" bgcolor="#ABCDEF" width="80%">
<tr>
<td>用户名</td>
<td><input type="text" name="username" id="username" placeholder="请输入合法用户名" required></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password" id="password" placeholder="请输入密码" required></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="添加用户" name="submit_user"></td>
</tr>
</table>
</form>

更新用户的视图:application/views/user/edituser.php

<!-- <h2>更新用户</h2> -->
<form action="<?php foreach ($get_username as $row):?><?php echo site_url().'/user/update_ok/'.$row['id'];?><?php endforeach;?>" method="post">
<table border="1" cellpadding="0" cellspacing="0" bgcolor="#ABCDEF" width="80%">
<tr>
<td>用户名</td>
<td><input type="text" name="username" id="" placeholder="请输入合法用户名" required value="<?php foreach ($get_username as $row):?><?php echo $row['username'];?><?php endforeach;?>"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password" id="" placeholder="请输入密码" required></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="更新用户"></td>
</tr>
</table>
</form>

为什么我的视图都没有HTML头和尾,因为我把他们分开写在了views视图下的templates文件夹里: 
application/views/templates/header.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title><?php echo $title; ?></title>
</head>
<body> <h1><?php echo $title; ?></h1>

application/views/templates/footer.php

 <em>&copy; 2016</em>
</body>
</html>

一个用户管理的ci框架的小demo--转载的更多相关文章

  1. 通过一个用户管理实例学习路由react-router-dom知识

    我们通过一个用户管理实例来学习react-router-dom 这个实例包括9个小组件 App.js 引入组件 Home.js 首页组件 User.js 用户管理组件 -  UserList.js 用 ...

  2. RPC框架学习+小Demo实例

    一.什么是RPC协议? 全称:远程过程调度协议 效果:使消费者向调用本地方法一样调用远程服务方法,对使用者透明 目前常用:Dubbo.Thirft.Sofa.... 功能: 建立远程通信(socket ...

  3. 【Java】Jsoup爬虫,一个简单获取京东商品信息的小Demo

    简单记录 - Jsoup爬虫入门实战 数据问题?数据库获取,消息队列中获取中,都可以成为数据源,爬虫! 爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 我们经常需要分析HTML网 ...

  4. 一个上传图片,预览图片的小demo

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. 模拟Hibernate框架的小demo

    该程序为尚学堂马士兵老师讲解,模拟了hibernate的原理,主要应用了字符串拼接,反射知识. step1,新建数据库 use jd; create table _student( _id int(1 ...

  6. Spring Boot 简单小Demo 转载!!!

    Spring Boot简介 接下来我们所有的Spring代码实例将会基于Spring Boot,因此我们先来了解一下Spring Boot这个大杀器. Spring早期使用XML配置的方式来配置Spr ...

  7. golang 文件传输小demo(转载)

    转载地址:https://www.cnblogs.com/qq702368956/p/10195497.html 获取文件信息需要用到os. Stat接口,发送文件前开启接收者(服务端),启动客户端先 ...

  8. 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

    使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...

  9. 在线用户管理--ESFramework 4.0 进阶(05)

    无论我们采用何种通信框架来构建我们的分布式系统,在服务端进行用户管理都是非常重要的一个环节.然而用户管理是否应该隶属于通信框架了?这个并不一定,通常来说,用户管理是与具体应用紧密相关的,应该是由应用解 ...

随机推荐

  1. C#多线程应用:子线程更新主窗体控件的值(一)

    我记得以前写过一次关于多线程的调用及更新的文章,由于时间比较久了,现在一时没找到.在做项目的时候,用到了多线程,还是有很多的同事在问多线程更新主窗体的事情,现在就这个事情做个记录. 说起多线程之间的更 ...

  2. Window 查看端口进程使用

    1. 查看所有端口占用 netstat -ano 2. 查看指定端口占用 netstat -ano | findstar "8080" 其中11152 对应为进程号 3. 查看进程 ...

  3. opencv中读取显示图像

    opencv是个开源的图像处理的库,小到基本的图像处理函数,如图像移动放大缩小,大到人脸识别,部分机器学习的知识,所以是个学习的不错的库.之前有图像处理的知识,这次再学习下这个开源库. 先上基础的图像 ...

  4. 自定义linux命令

    ​ 方法一.修改/etc/bashrc文件 在文件底部加入 alias zone="cd /usr/local/webserver" 在命令行输入zone,则会直接进入到制定目录 ...

  5. 【linux】U盘安装启动出现press the enter key to begin the installation process 就不动弹了

    今天在物理机上安装centOS6.5  64bit 系统的时候,出现了U盘安装启动出现press the enter key to begin the installation process 就不动 ...

  6. Ubuntu 16.04 natural scrolling

    http://ubuntuhandbook.org/index.php/2016/05/install-ubuntu-tweak-in-ubuntu-16-04/ download ubuntu-tw ...

  7. Oracle 表空间查询与操作方法

    一.查询篇 1.查询oracle表空间的使用情况 select b.file_id 文件ID,  b.tablespace_name 表空间,  b.file_name 物理文件名,  b.bytes ...

  8. java get post 请求

    package wzh.Http; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr ...

  9. [转]Docker 为什么这么火

    本文来自:Docker为什么这么火 以及此文:http://cloud.51cto.com/art/201408/447966_1.htm Docker 我的理解是,相对于 VMware 的一个分支. ...

  10. 微信小程序从子页面退回父页面时的数据传递 wx.navigateBack()

    我们知道,在微信小程序中,从一个页面转到另一个页面,一般情况下可以通过navigate或redirect时候的url来携带参数,然后在目标页面的onLoad函数参数中获取这些url参数.例如: // ...