![](/img/trans.png)
[英]CodeIgniter PHP echo data from Mssql query result with wrong characters
[英]Wrong Result Codeigniter Query
我是Codeigniter和php的新手。 这是我的模型:
function getRelated($newsId, $catId){
$this->db->select('a.id, a.category, a.title, a.photo, a.caption, a. summary, a.detail, a.page_views, b.cat_id');
$this->db->from('news as a');
$this->db->order_by("time", "desc");
$this->db->join('news_categories as b', 'a.id = b.news_id');
$this->db->where('a.id <>', $newsId);
$this->db->where('b.cat_id', $catId);
$query = $this->db->get();
echo $this->db->last_query();
return $query->result();
}
这是我的控制器:
public function detail($id, $catId){
$this->load->model('news_model');
$data['list'] = $this->news_model->get($id);
$data['related'] = $this->news_model->getRelated($id, $catId);
$this->load->view('page_header');
$this->load->view('news_detail', $data);
$this->load->view('page_footer');
}
这是视图中查询的结果:
选择
a
。id
,a
。category
,a
。title
,a
。photo
,a
。caption
,a
。summary
,a
。detail
,a
。page_views
,b
。cat_id
FROMnews
作为a
JOINnews_categories
为b
ONa
。id
=b
。news_id
WHEREa
。id
<>'2'和b
。cat_id
='title%20one%20test1'按time
排序DESC
正如您在上方(视图)所看到的,cat_id的结果是title ..我的代码有什么问题?
我的查看文件(news_detail):
<h3>Related News</h3>
<?php
$i = 0;
foreach ($related as $key => $value) {
if (++$i > 3)
break;
?>
<div class="list">
<a class="title" href="news/detail/<?= $value->id . "/" . $value->title ?>"><?= $value->title ?></a>
</div>
<?php
}?>
职位类别是多项选择。 因此,每个帖子可以有多个类别。 我该怎么办?
提前致谢
我已经修改了您的代码。 尝试这个...!
function getRelated($newsId, $catId){
$this->db->select('a.id, a.category, a.title, a.photo, a.caption, a. summary, a.detail, a.page_views, b.cat_id');
$this->db->from('news as a');
$this->db->order_by("time", "desc");
$this->db->join('news_categories as b', 'a.id = b.news_id and a.id<>'.$newID.'and b.cat_id=$catID','inner');
$query = $this->db->get();
echo $this->db->last_query();
return $query->result();
}
你在这里做错了
<a class="title" href="news/detail/<?= $value->id . "/" . $value->title ?>"><?= $value->title ?></a>
当您定义任何功能时
public function detail($id, $catId){ }
那么$id
将是方法名称detail
之后的第一段,即$value->id
, $catId
将是方法名称之后的第二段,即$value->title
。
因此,将catID添加为链接中的第二段,如下所示: <a class="title" href="news/detail/<?= $value->id . "/" . $value->catID ?>"><?= $value->title ?></a>
更改视图文件中的定位标记(news_detail)。
在这里,您发送的是标题而不是类别ID
更换
<a class="title" href="news/detail/<?= $value->id . "/" . $value->title?>"><?= $value->title ?></a>
通过
<a class="title" href="news/detail/<?= $value->id . "/" . $value->cat_id?>"><?= $value->title ?></a>
替换视图文件(news_detail):
<h3>Related News</h3>
<?php
$i = 0;
foreach ($related as $key => $value) {
if (++$i > 3)
break;
?>
<div class="list">
<a class="title" href="news/detail/<?= $value->id . "/" . $value->cat_id ?>"><?= $value->title ?></a>
</div>
<?php
}?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.