我是 codeigniter 框架的新手,正在学习如何使用 MVC 模式。我正在尝试实现输出,但这对我来说并不适用,请允许我用代码说明我的问题:
我的数据库中有 3 个表
CREATE TABLE carBrand
(
pk_brandID int,
brand varchar(255)
);
CREATE TABLE carModel
(
pk_modelID int,
model varchar(255)
)
CREATE TABLE brandModel
(
pk_brandmodelID int,
project varchar(255),
carOWner varchar(255),
buildyear varchar(255),
fk_brandID int,
fk_modelID int
)
目前我在我的模型中加入了这样的表
function getCarbyOwner(){
$this->db->join('carBrand', 'carBrand.pk_brandID = brandModel.fk_brandID');
$this->db->join('carModel', 'carModel.pk_modelID = brandModel.fk_modelID');
$this->db->where('carOwner', $$this->session->userdata('logged_in_owner'));
$q = $this->db->get('brandModel');
return $q->result();
}
在我看来,这会输出 - 取决于数据库中的第一个记录
品牌1
*模型
品牌 1
*型号品牌 3
*型号品牌 2
*型号品牌 3
*型号
但是我在输出数据时遇到了困难我基本上想要的是以下输出
品牌 1
*型号
*型号
*型号品牌 2
*型号
*型号
*型号品牌 3
*型号
*型号
*型号
这是我的控制器
function index(){
if($car= $this->car_model->getCarbyOwner()){
$data['car'] = $car;
$this->load->view('carview', $car);
}
}
风景:
if(isset($car)){
foreach($car as $r){
$r->brand;
$r->model
}
}
我怎样才能达到我想要的结果?
编辑
我已经实施了一些建议,但现在它并没有输出所有内容。
我在表brandModel中的记录例如是这样的:
pk_brandmodelID | project | carowner | buildyear | fk_brandID | fk_modelID
1 | proj A | frank | 2012 | 1 | 6
2 | proj B | Jef | 2002 | 2 | 1
3 | proj C | jeffrey | 2013 | 1 | 5
4 | proj X | frank | 2010 | 2 | 2
5 | proj Y | george | 2008 | 1 | 3
假设品牌 1 = 奥迪,品牌 2 是梅赛德斯 想要的输出是这样的
奥迪
模型 fk_id 6
模型 fk_id 5
模型 fk_id 3梅赛德斯
车型 fk_id 1型号 fk_id 2
但现在我只得到
奥迪
车型 fk_id 6梅赛德斯
车型 fk_id 1
我使用了以下代码:
模型
function getCarbyOwner(){
$this->db->join('carBrand', 'carBrand.pk_brandID = brandModel.fk_brandID');
$this->db->join('carModel', 'carModel.pk_modelID = brandModel.fk_modelID');
$this->db->where('carOwner', 'xxx');
$q = $this->db->get('brandModel');
if($result = $q->result())
{
foreach($result as $key => $value)
{
$d[$value->pk_brandID]['brand'] = $value->brand;
$d[$value->pk_brandID]['data'][$value->pk_modelID] = $value;
}
return $d;
}
else
return false;
}
看法
if(isset($x)){
foreach($x as $r)
{
echo $r['brand']."<br />";
foreach($r['data'] as $v)
{
echo $v->model."<br />";
}
echo "<br />";
}
}