我正在使用Codeigniter,
我有一个表,我正在将数据插入数据库,而数据要插入两次取决于年份和六个月。
所以我的表数据是
------------------------------------------------
id |m_id | primary | secondary | Duration
------------------------------------------------
1 | 1 | 100 | 80 | 12m
------------------------------------------------
2 | 1 | 50 | 40 | 6m
------------------------------------------------
3 | 2 | 300 | 150 | 12m
------------------------------------------------
4 | 2 | 150 | 70 | 6m
------------------------------------------------
5 | 3 | 500 | 300 | 12m
------------------------------------------------
6 | 3 | 300 | 200 | 6m
现在我必须从数据库中获取数据,并且我希望输出看起来像这样
--------------------------------------------
id |m_id | primary | secondary
| | 12m |6m |12m |6m
--------------------------------------------
1 |1 |100 |50 | 80 |40
--------------------------------------------
2 |2 |300 |150 | 150 |70
--------------------------------------------
3 |3 |500 |300 | 300 |200
所以我试图在视图页面上显示数组,所以我print_r($row)
并得到类似的输出
stdClass Object ( [id] => 1 [m_id] => 1 [primary] => 100 [secondary] =>80 [Duration] => 12m )
stdClass Object ( [id] => 2 [m_id] => 1 [primary] => 50 [secondary] => 40 [Duration] => 6m)
stdClass Object ( [id] => 3 [m_id] => 2 [primary] => 300 [secondary] => 150 [Duration] => 12m)
stdClass Object ( [id] => 4 [m_id] => 2 [primary] => 150 [secondary] => 70 [Duration] => 6m)
stdClass Object ( [id] => 5 [m_id] => 3 [primary] => 500 [secondary] => 300 [Duration] => 12m)
stdClass Object ( [id] => 6 [m_id] => 3 [primary] => 300 [secondary] => 200 [Duration] => 6m )
但是在列表中,我正在输出。我没有添加金额,因为输入的金额有误。这不是异常输出。 我的模型查询中存在一些问题。
--------------------------------------------
id |m_id | primary | secondary
| |12m |6m |12m |6m
--------------------------------------------
1 |1 | | | |
2 |1 | | | |
3 |2 | | | |
4 |2 | | | |
5 |3 | | | |
6 |3 | | | |
我的查看代码是
<table id="list" border="1">
<thead>
<tr>
<th rowspan="2">id</th>
<th rowspan="2">m_id</th>
<th colspan="2">Primary</th>
<th colspan="2">Secondary</th>
</tr>
<tr>
<th>12m</th>
<th>6m</th>
<th>12m</th>
<th>6m</th>
</tr>
</thead>
<tbody>
<?php
if($activityfeeslist)
{
$n = 1;
foreach ($activityfeeslist as $rows)
//print_r($rows);
if($rows->Duration=='12m'){
$primary12=$rows->primary;
$secDep12=$rows->secondary;
}else{
$primary6=$rows->primary;
$secDep6=$rows->secondary;
}
{?>
<tr>
<td><?php echo $n++;?></td>
<td><?php echo $rows->m_id;?></td>
<td><?php echo $primary12;?></td>
<td><?php echo $primary6;?></td>
<td><?php echo $secDep12;?></td>
<td><?php echo $secDep6;?></td>
<?php
}}?>
</tbody>
</table>
控制器
public function activityFees()
{
$data['activityfeeslist'] = $this->Fees_model->activityFessList();
$this->load->view('fees/activityFees',$data);
}
模型
public function activityFessList(){
$getDetails = array('tbl_activityFees2.is_feesActive'=>1);
$result = $this->db->where($getDetails)
->select("*")
->from('tbl_activityFees2')
->join('activity_name','activity_name.m_id=tbl_activityFees2.m_id')
->get()
->result();
if($result)
{
return $result;
}
else
{
return 0;
}
}
您能帮我解决这个问题吗?
答案 0 :(得分:0)
是的,模型查询和视图中都存在错误。 在视图中,您正在迭代和分解12m和6m,而不是在视图中这样做,应该使用类似以下的查询:
$getDetails = array('tbl_activityFees2.is_feesActive'=>1);
$result = $this->db->where($getDetails)
->where('Duration', '=', '12m')
->select('m_id', 'primary as primary12m', 'secondary as secondary12m')
->from('tbl_activityFees2')
->join('tbl_activityFees2 as t2','t2.m_id=tbl_activityFees2.m_id')->where('Duration', '=', '6m')->select('primary as primary6m', 'secondary as secondary6m')
->join('activity_name','activity_name.activity_name_id=tbl_activityFees2.activity_name_id')
->get()
->result();
我已经两次连接同一张表以直接从查询中获取结果。 Systax我有点不对劲,但我希望你能明白。
答案 1 :(得分:0)
如果您要在视图中的循环中添加行,而不只是更改视图
您的activityFees控制器是正确的..如果您从其他构造函数中加载了模型
25210
在模型上,您不必按照标准进行操作。 并提及加入...
public function activityFees()
{
$this->load->model('Fees_model');
$data['activityfeeslist'] = $this->Fees_model->activityFessList();
$this->load->view('fees/activityFees',$data);
}
查看时
您的情况正在制造错误。而不是写条件...写成..
public function activityFessList(){
$getDetails = array('tbl_activityFees2.is_feesActive'=>1);
$result = $this->db->select("*")
->from('tbl_activityFees2')
->where($getDetails)
->join('activity_name','activity_name.activity_name_id=tbl_activityFees2.activity_name_id','left')
->get()
->result();
if($result)
{
return $result;
}
else
{
return 0;
}
}