用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4003|回复: 8
收起左侧

[HELP] 求助一个简单的ci程序

[复制链接]
发表于 2009-7-31 21:39:25 | 显示全部楼层 |阅读模式
本人是个新手但对php非常感兴趣,最近几天遇到了问题 在ci里面 如何将数据库的数据 写入到model中 ,然后在controller 在如何加载 最后在view展示出来
只需写个简单的程序,参考一下 谢谢啊 数据库随便写几个字段 能展示出来 就行了
model, controller,view的代码 越简单越好 再次谢谢了啊
发表于 2009-7-31 22:05:06 | 显示全部楼层
本帖最后由 yinzhili 于 2009-7-31 22:23 编辑

1# wondely

控制器(Controller): test.php (此文件保存在 system/application/controllers 目录下)

<?php
class Test extends Controller{
function Test(){
   parent::Controller();
   $this->load->model('test_model');
}

function index(){
   $data['message']=$this->test_model->get();
   $this->load->view('test_view',$data);
}

}
?>


模型(Model): test_model.php (此文件保存在 system/application/models 目录下)


<?php
class Test_model extends Model{
function Test_model(){
   parent::Model();
   $this->load->database();
}

function get(){
   $query_string="SELECT * FROM test_table";
   $result=$this->db->query($query_string);
   return $result->row_array();
}
}
?>


视图(View): test_view.php (此文件保存在 system/application/views 目录下)


<html>
<head><title>测试</title></head>
<body>
<?php echo $message['content'];?>
</body>
</html>


然后使用你的MySQL管理工具(或者直接使用命令行也行),创建一个数据表,名字要与前面的 test_table 对应,再随便插入一条数据:

CREATE TABLE IF NOT EXISTS `test_table` (
  `id` int(11) NOT NULL auto_increment,
  `content` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
)
INSERT INTO `test_table` (`id`, `content`) VALUES
(1, '春哥纯爷们,铁血真汉子。信春哥,得永生。');


最后,配置好你的 config.php和database.php 文件中的相关参数。这两个文件位于 system/application/config 目录下。假设你在 config.php 中设置的base url为 http://localhost/,那么,访问 http://localhost/index.php/test 就可以看到效果了。

评分

参与人数 2威望 +7 收起 理由
visvoy + 2 我只支持春哥!
Hex + 5 精彩解答

查看全部评分

 楼主| 发表于 2009-7-31 23:16:07 | 显示全部楼层

谢谢啊

本帖最后由 wondely 于 2009-8-1 00:42 编辑

谢谢 楼上的啊 管理员一会给你加分啊


可是出现了问题了

Unable to locate the model you have specified: mwelcome
没有找到指定的模块 我的代码是copy你的啊
发表于 2009-8-1 07:05:23 | 显示全部楼层
mwelcome与2L提供的代码无关哦,你看下2L的代码通篇都没有调用mwelcome
检查一下是否是文件名或url写错了
发表于 2009-8-1 10:07:09 | 显示全部楼层
是啊,代码里没有 mwelcome,写代码最重要的就是仔细。
 楼主| 发表于 2009-8-1 11:19:56 | 显示全部楼层
本帖最后由 wondely 于 2009-8-1 11:26 编辑

这是我写的代码:
控制器(Controller): welcome.php (此文件保存在 system/application/controllers 目录下)
<?php
class Welcome extends Controller{
function Welcome(){
   parent::Controller();
   $this->load->model('m_welcome');
}

function index(){
   $data['query']=$this->m_welcome->select();
   $this->load->view('welcome_view',$data);
}

}
?>

模型(Model): wel.php (此文件保存在 system/application/models 目录下)
<?php
    class M_welcome extends Model{
  function M_welcome(){
   parent: Model();
   $this->load->database();
   }
  
  function select(){
   $sql="select * from contacts";
   $query=$this->db->query($sql);
   return $this->row->array();
   }


  }


?>

视图(View): welcome_view.php (此文件保存在 system/application/views 目录下)
<html>
<head>
<title></title>
</head>
<body>
<p><?php echo $query['id'];?></p>
<p><?php echo $query['name'];?></p>
<p><?php echo $query['email'];?></p>
<p><?php echo $query['ip'];?></p>


</body>
</html>


可是 还是出现了
Unable to locate the model you have specified: mwelcome
我真的不知道是什么原因?
可能是配置有问题 但我不知道改那个文件啊
但不加载 model 时 又可以访问 是自定义的内容 不是从数据库里的东西
发表于 2009-8-1 12:35:35 | 显示全部楼层
看一下模型的命名规则吧,CI 的命名规则必须遵守。

http://codeigniter.org.cn/user_guide/general/models.html

PS: 先把上面贴出来的代码执行正确,再自己修改,修改的时候不要以自己的想法随意修改,框架和纯 PHP 的最大区别就是有很多规则,必须遵守。
发表于 2009-8-1 13:53:55 | 显示全部楼层
6# wondely

你的模型文件名不对。模型文件名应该与类名相同,只是大小写不同而已。比方说,你的模型是这样写的:


<?php
class Test_model extends Model{
function Test_model(){
   parent::Model();
   $this->load->database();
}

}
?>


那么,你的模型文件名就必须是 test_model.php ,这是命名规范,必须遵守。注意大小写。
 楼主| 发表于 2009-8-1 23:03:29 | 显示全部楼层
谢谢了啊
<b>你非常棒啊</b>

本版积分规则