Как получить значение умножения из 2 таблиц codeigniter? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть 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 } ?>

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Попробуйте это

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
       );
    }

Примечание: - Но столбцы, выполняющие математические операции, должны иметь одинаковое число

0 голосов
/ 03 апреля 2019

Вы извлекаете объект через 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,
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...