我在数据库中有2个表,其中表1有11个字段,表2有10个字段。我尝试将它们两者相乘并显示到HTML表格中, 。但是我收到了错误消息
“不能将stdClass类型的对象用作数组”。
Table 1. |id| |kota_kab| |ipm| |pddmiskin| |ginirasio| |rasio_k| |indks_pend| |indks_kes| |ppk| |tpt| |tpak|
Table 2. |idno| |maxK1| |minK2| |minK3| |minK4| |minK5| |maxK6| |maxK7| |minK8| |maxK9|
这是我的模特
class Model_data extends CI_model {
function tampildata(){
$hasil=$this->db->query("SELECT * FROM datakota");
return $hasil->result();
}
function maxmin(){
$sql=$this->db->query("SELECT maxK1, minK2, minK3, minK4, minK5, maxK6, maxK7, minK8, maxK9 FROM maxmin");
return $sql->result();
}
function coba(){
$sql = $this->tampildata();
$sql2 = $this->maxmin();
foreach ($sql as $key => $isidata) {
$hasil=array(
'id' => $isidata->id,
'kota_kab' => $isidata->kota_kab,
'ipm' => $isidata->ipm/$sql2[$key]['maxK1'],
'pddmiskin' => $isidata->pddmiskin/$sql2[$key]['minK2'],
'ginirasio' => $isidata->ginirasio/$sql2[$key]['minK3'],
'rasio_k' => $isidata->rasio_k/$sql2[$key]['minK4'],
'indks_pend' => $isidata->indks_pend/$sql2[$key]['minK5'],
'indks_kes' => $isidata->indks_kes/$sql2[$key]['maxK6'],
'ppk' => $isidata->ppk/$sql2[$key]['maxK7'],
'tpt' => $isidata->tpt/$sql2[$key]['minK8'],
'tpak' => $isidata->tpak/$sql2[$key]['maxK9'],
);
}
return $hasil;
}
}
查看
<?php
$no = 1;
foreach($data as $hasil){
?>
<tr>
<td><?php echo $no++ ?></td>
<td><?php echo $hasil->kota_kab ?></td>
<td><?php echo $hasil->ipm ?></td>
<td><?php echo $hasil->pddmiskin ?></td>
<td><?php echo $hasil->ginirasio ?></td>
<td><?php echo $hasil->rasio_k ?></td>
<td><?php echo $hasil->indks_pend ?></td>
<td><?php echo $hasil->indks_kes ?></td>
<td><?php echo $hasil->ppk ?></td>
<td><?php echo $hasil->tpt ?></td>
<td><?php echo $hasil->tpak ?></td>
</tr>
<?php } ?>
答案 0 :(得分:0)
您正在通过result()
获取对象,并且将foreach $isidata
数据视为对象,然后为什么不获取$sql2
数据。您可以尝试:
foreach ($sql as $key => $isidata) {
$hasil=array(
'id' => $isidata->id,
'kota_kab' => $isidata->kota_kab,
'ipm' => $isidata->ipm/$sql2[$key]->maxK1,
'pddmiskin' => $isidata->pddmiskin/$sql2[$key]->minK2,
'ginirasio' => $isidata->ginirasio/$sql2[$key]->minK3,
'rasio_k' => $isidata->rasio_k/$sql2[$key]->minK4,
'indks_pend' => $isidata->indks_pend/$sql2[$key]->minK5,
'indks_kes' => $isidata->indks_kes/$sql2[$key]->maxK6,
'ppk' => $isidata->ppk/$sql2[$key]->maxK7,
'tpt' => $isidata->tpt/$sql2[$key]->minK8,
'tpak' => $isidata->tpak/$sql2[$key]->maxK9,
);
}
答案 1 :(得分:0)
尝试一下
function coba(){
$sql = $this->tampildata();
$sql2 = $this->maxmin();
$result = array_merge($sql, $sql2);
foreach ($result as $key => $isidata) {
$hasil=array(
'id' => $isidata->id,
'kota_kab' => $isidata->kota_kab,
'ipm' => $isidata->ipm/$isidata->maxK1 //Do this
);
}
注意:-,但使执行数学运算的列的数量应相同