我目前有一个网站应该能够从用户输入中记笔记并将其保存到数据库中。我正在寻找关于实现这一目标的最佳方法的一些指导。
网站应该只显示添加的最新笔记,但所有其他笔记仍应保存(但隐藏)。我不知道用户输入笔记的次数。我最初的想法是每次用户输入注释时动态地向数据库添加一列,但是我最终会为每个注释条目添加一个新列。值得一提的是注释与文件名相关联,因此可能数据库中的许多行都会有不同的注释。
dbforge方法就是我要采用的方法,但是会反复尝试向数据库添加“注释”(一次运行后就已存在)。
$fields = array(
('notes') => array('type' => 'TEXT','constraints' =>'255')
);
$this->dbforge->add_column('mytable', $fields);
有人会知道更好的方法吗?我正在使用php和codeigniter框架。 非常感谢所有帮助!
答案 0 :(得分:3)
我会有一个记录表,用于存储用户ID,注释和添加日期。
在您看来,您的表单会在控制器中指向:
SpellChecker spellChecker=new SpellChecker();
spellChecker.setLanguage(Language.ENGLISH);
SpellRequest spellRequest=new SpellRequest();
spellChecker.setOverHttps(true);
spellRequest.setText("aple");
SpellResponse spellResponse=spellChecker.check(spellRequest);
模型中的public function addNote($user_id)
{
$this->form_validation->set_rules('note', 'Note', 'required');
if ($this->form_validation->run() == true) {
$array = array (
'user_id' => $user_id,
'note' => $this->input->post('note')
);
$this->your_model->addRecord('notes', $array);
}
}
功能如下所示:
addRecord()
然后,您可以执行此类查询并将结果传回您的视图:
public function addRecord($table, $array)
{
$this->db ->insert($table, $array);
return $this->db->insert_id();
}
这将仅返回指定用户添加的最后一个音符。您可以将限制设置为您想要的任何值,并返回public function getLatestNoteByUser($user_id)
{
$this->db->select('id, note')
->from('notes')
->where('note_added_by', $user_id)
->order_by('date_added', desc)
->limit(1);
return $this->db->get()->row();
}
而不是row_array()
。您甚至可以在函数参数中传递row()
并使用$limit
。