╭淡淡男人味`ζ 发表于 2014-8-8 16:18:26

第一次使用CI框架,试着写了一个增删改查功能,MVC模式

本帖最后由 ╭淡淡男人味`ζ 于 2014-8-11 14:00 编辑

控制器 goods.php<?php
class CI_MysqlDB extends CI_Model {
   
    /**
   * 执行数据录入操作
   * @param 数据表名 $tb_name
   * @param 录入字段 $values
   * @return 影响行数
   */
    public function insert($tb_name, $data)
    {
      $data = implode(',', $data);
      $data = str_replace(",", "', '", $data);

      $sql = "INSERT INTO $tb_name VALUES ( null, '$data' )";
      $res = mysql_query($sql);
      $num = mysql_affected_rows();
      return $num;
    }
   
    /**
   * 执行删除数据操作
   * @param 数据表名 $tb_name
   * @param 删除条件 $where
   * @return 影响行数
   */
    public function delete($tb_name, $where)
    {
      $sql = "DELETE FROM $tb_name WHERE $where";
      $res = mysql_query($sql);
      $num = mysql_affected_rows();
      return $num;
    }
   
    /**
   * 执行修改数据操作
   * @param 数据表名 $tb_name
   * @param 修改信息 $set
   * @param 修改条件 $where
   * @return 影响行数
   */
    public function edit($tb_name, $set, $where)
    {
      $sql = "UPDATE $tb_name SET $set WHERE $where";
      $res = mysql_query($sql);
      $num = mysql_affected_rows();
      return $num;
    }
}


模型goods_model.php
<?php
class Goods_model extends CI_Model
{
    private $tb_name = 'goods';

    public function __construct()
    {
      parent::__construct();
      $this->load->model('db_goods');
    }
   
    /**
   * 查询100条数据
   * @return 二维数组
   */
    public function get_goods()
    {
      $resoult = $this->db->get('goods', 100, 0);
      $rows = $resoult->result_array();
      return $rows;
    }
   
    /**
   * 查询某个商品详细信息
   * @param 商品id $id
   * @return 一维数组
   */
    public function goodsinfo ($id)
    {
      $res = $this->db->query('SELECT * FROM goods WHERE id = ' . $id);
      $row = $res->row_array();
      return $row;
    }
   
    /**
   * 录入商品信息
   * @param 商品字段 $data
   * @return 执行状态
   */
    public function addgoods($data)
    {
      $data['gtime'] = !empty($data['gtime'])?$data['gtime']:date('Y-m-d H:i:s');
      
      unset($data['submit']);
      if (!empty($data['name']) && !empty($data['price']) && !empty($data['market']))
      {
            $num = $this->db_goods->insert($this->tb_name, $data);
      } else
      {
            $num = 0;
      }
      return $num;
    }
   
    /**
   * 删除商品信息
   * @param 商品id $id
   * @return 执行状态
   */
    public function delgoods($id)
    {
      $where = 'id = ' . $id;
      $num = $this->db_goods->delete($this->tb_name, $where);
      return $num;
    }
   
    /**
   * 修改商品信息
   * @param 商品id $id
   * @param 修改内容 $data
   * @return 执行状态
   */
    public function editgoods($id, $data)
    {
      $where = 'id = ' . $id;
      $set = "goods_name = '{$data['name']}',
                goods_price = '{$data['price']}',
                goods_market = '{$data['market']}',
                content = '{$data['content']}',
                goods_time = '{$data['gtime']}'";
      $num = $this->db_goods->edit($this->tb_name, $set, $where);
      return $num;
    }
}


DB层db_goods.php
<?php
require_once 'application/core/CI_MysqlDB.php';
class DB_goods extends CI_MysqlDB {
   
}

CI_MysqlDB.php

<?php
class CI_MysqlDB extends CI_Model {
   
    /**
   * 执行数据录入操作
   * @param 数据表名 $tb_name
   * @param 录入字段 $values
   * @return 影响行数
   */
    public function insert($tb_name, $data)
    {
      $data = implode(',', $data);
      $data = str_replace(",", "', '", $data);

      $sql = "INSERT INTO $tb_name VALUES ( null, '$data' )";
      $res = mysql_query($sql);
      $num = mysql_affected_rows();
      return $num;
    }
   
    /**
   * 执行删除数据操作
   * @param 数据表名 $tb_name
   * @param 删除条件 $where
   * @return 影响行数
   */
    public function delete($tb_name, $where)
    {
      $sql = "DELETE FROM $tb_name WHERE $where";
      $res = mysql_query($sql);
      $num = mysql_affected_rows();
      return $num;
    }
   
    /**
   * 执行修改数据操作
   * @param 数据表名 $tb_name
   * @param 修改信息 $set
   * @param 修改条件 $where
   * @return 影响行数
   */
    public function edit($tb_name, $set, $where)
    {
      $sql = "UPDATE $tb_name SET $set WHERE $where";
      $res = mysql_query($sql);
      $num = mysql_affected_rows();
      return $num;
    }
}


视图层index.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{$title}</title>
<meta name="Keywords" content="" />
<meta name="Description" content="" />
<style type="text/css">
li {
    width:380px;
    font-size:12px;
    line-height:20px;
    position:relative;
}
li span {
    position:absolute;right:0;
}
</style>
</head>
<body>
{include file='header.tpl'}
<ul>
{foreach from=$rows item='value'}
<li>
      <a href="/goods/goodsinfo?id={$value.id}" target="_blank">{$value.goods_name}</a>
      <span>
          <a href="/goods/editgoods?id={$value.id}">修改</a>
          <a href="/goods/delgoods?id={$value.id}">删除</a>
      </span>
</li>
{/foreach}
</ul>

<div style="width:350px;background:#ddd;padding:10px;margin:0 auto;">
<form method="post" action="goods/addgoods">
商品名称:<input type="text" name="name" /><br />
商品价格:<input type="text" name="price" /><br />
市场价格:<input type="text" name="market" /><br />
上架时间:<input type="text" name="gtime" /><br />
商品描述:<textarea name="content"></textarea>
<input type="submit" name="submit" value="发布商品" />
</form>
</div>
</body>
</html>

edit.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body>
{include file='header.tpl'}

<div style="width:350px;background:#ddd;padding:10px;margin:0 auto;">
<form method="post" action="/goods/editgoods?id={$row.id}&act=edit">
商品名称:<input type="text" name="name" value="{$row.goods_name}" /><br />
商品价格:<input type="text" name="price" value="{$row.goods_price}" /><br />
市场价格:<input type="text" name="market" value="{$row.goods_market}" /><br />
上架时间:<input type="text" name="gtime" value="{$row.goods_time}" /><br />
商品描述:<textarea name="content">{$row.content}</textarea>
<input type="submit" name="submit" value="修改商品" />
</form>
</div>
</body>
</html>

以上就是所有代码,还望高手指点,感谢!

孝文西 发表于 2014-9-3 14:46:10

...........控制器 。。复制错误了
页: [1]
查看完整版本: 第一次使用CI框架,试着写了一个增删改查功能,MVC模式