2009-12-17 39 views
1

我正在构建我的第一个真正的CI应用程序。我必须建立一个调查系统 - 如果细节很重要,我会详细说明。Codeigniter - 如何存储信息? (noob)

什么是从用户发布信息到数据库的最佳方式?在一行中,逗号是分隔的吗?我是一个菜鸟,所以细节将不胜感激! :)

我应该补充一点:用户需要有能力多次尝试测试并将每个测试的得分绘制成图。每次测试都需要付款。

这就是我所在的地方。这段代码很有用,但我确定有一种更优雅的方式来做事。

$this->db->select('credits')->from('be_user_profiles')->where('user_id', $this->session->userdata('id')); 
$query = $this->db->get(); 
foreach ($query->result() as $row) 
{ 
    echo $row->credits; 
} 

这是怎么回事?

+0

绝对需要更多的信息,你在谈论什么样的信息? – 2009-12-17 15:00:51

+0

添加了一点细节,Nate! – 2009-12-17 15:05:27

回答

0

这更像是代码组织/代码结构问题而不是问题。

可以“通过手”抓取您的输入数据,或者使用活动记录CI图书馆这样做(http://ellislab.com/codeigniter/user_guide/database/active_record.html#insert

如果CI有ORM实施,作业应该比这个更容易。

只需创建一个控制器并检查其上(或模型内部)的输入数据,并创建一个模型以将必要的清理,数据验证和正确的数据分配应用于一个或多个模式表并进行设置。

编辑:比你展示的例子更优雅的是ORM,但我不确定CI是否已经实现了。

+0

检查我的更新。 :) – 2009-12-17 21:34:13

+0

是的,CI有一个ORM库。 – 2009-12-19 21:57:43

0

这取决于数据的结构,但最好的办法是制作一个调查表,并将每个问题的答案存储在不同的列中。

从MVC的角度来看,您将在视图中拥有一个表单,让控制器在提交时将模型中的数据传递给模型,然后让模型清理数据并将其插入数据库。

+0

你能否详细说明一下?你是什​​么意思“清理数据”? :) – 2009-12-17 15:04:07

+0

使用像mysql_real_escape_string()等函数来确保数据是安全的。绝不信任用户输入。 – GSto 2009-12-17 15:19:48

+0

我不确定我在追随。这与验证同义吗? – 2009-12-17 15:51:28