我使用过几个不同的StackOverflow帖子中的示例来从CI中的相关表中获取数据,但是在“where”部分连接我的表时没有成功,我想了解如何翻译从MySQL查询到CI MVC。
这是MySQL查询,用于从dctags表中获取dctag字段,其中articles表中的dctag_id匹配:
$dctagger = $article['dctag_id'];
$query = "SELECT `dctitle`, `dctag_id` FROM dctags WHERE dctag_id = '$dctagger'";
$query_run = mysql_query($query);
这是Model,Controller和View文件的代码:
模型 -
public function get_article_dctag() {
$this->db->select('*')
->from('dctags')
->where('dctag_id', $this->$data['dctag_id']);
$query = $this->db->get();
return $query->result_array(); }
控制器 -
public function article($slug) {
$data['article'] = $this->article_model->get_article($slug);
$data['dctag'] = $this->article_model->get_article_dctag();
$this->load->view('templates/header-article', $data);
$this->load->view('article', $data);
$this->load->view('templates/footer-home'); }
查看 -
<?php foreach ($dctag as $dctag_item): ?>
<title><?php $dctag_item['dctitle']; ?></title>
<?php endforeach; ?>
错误 - “遇到了PHP错误......严重性:通知......消息:未定义的变量:数据...文件名:models / article_model.php”(参见上面的模型代码)
问题是变量$ this-&gt; ...我不知道需要什么。感谢您的解释/澄清 - 提前!
答案 0 :(得分:0)
在控制器中,您应该在get_article_dctag($ var)上传递变量 这将是你的模型get_article_dctag()的参考,这应该有你正在搜索的参数。在你的结构中,模型似乎无法在函数中找到你的$ data ['dctag_id']
在控制器中
$dctag_id = 2
$this->article_model->get_article_dctag($dctag_id);
在你的模特中
function get_article_dctag($dctag_id){
$this->db->where('dctag_id',$dctag_id);}
希望它能帮助你很多
答案 1 :(得分:0)
如果dctag_id
位于$data['article']
,请使用以下代码
在控制器上
public function article($slug)
{
$data['article'] = $this->article_model->get_article($slug);
$data['dctag'] = $this->article_model->get_article_dctag($data['article']['dctag_id']);
$this->load->view('templates/header-article', $data);
$this->load->view('article', $data);
$this->load->view('templates/footer-home');
}
在您的模型上
public function get_article_dctag($id)
{
$this->db->select('*')
->from('dctags')
->where('dctag_id', $id);
$query = $this->db->get();
return $query->result_array();
}