рассчитать и отобразить результат из строки в codeignitor 3 - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть таблица, в которой мне нужно вычесть значения буксировки в том же столбце и отобразить разницу в другой таблице просмотра. Мне нужно записать суточные показания счетчика общего часа с 5 компрессоров и отобразить разницу в ежедневных часах работы.

Мой стол: вывод изображения crudtabe

SELECT a.cuidad_id,
       a.bc100a,
       Coalesce(a.bc100a - (SELECT b.bc100a
                            FROM   cuidadrun b
                            WHERE  a.cuidad_id = b.cuidad_id + 1), a.bc100a) AS
       diffbc100a
FROM   cuidadrun a 

что отлично работает в phpmyadmin, пожалуйста, смотрите изображение: выход sql

Я не могу тренировать свой контроллер, модель и вид для отображения результата. Кроме того, я могу сохранить результат в другой таблице?

Мой контроллер

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Cactushrs extends CI_Controller {

    public function __construct()
    {
        parent::__construct();
        $this->load->model('Cactushrs_model');
    }
    public function index()
    {

        $this->load->view('template/header');
    $data = $this->Cactushrs_model->cactushrs();
    $this->load->view('pages/cactushrs_view', $data);
        $this->load->view('template/footer');
    }
}

Моя модель

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Cactushrs_model extends CI_Model
{
  public function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
  public function cactushrs()
  {

    $query = $this->db->get ('SELECT a.cuidad_id, a.bc100a, COALESCE(a.bc100a - (SELECT b.bc100a FROM cuidadrun b WHERE a.cuidad_id = b.cuidad_id + 1), a.bc100a) AS differnce FROM cuidadrun a');

  }
}

Мой взгляд

<table id="cuidadhrs" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%">
  <thead>
      <tr>
          <th>cuidad_id</th>
          <th>bc100a</th>
          <th>diff100</th>
      </tr>
  </thead>
  <tbody>
    <tr>
      <td><?php echo $this->db->get('differnce'); ?></td>
    </tr>
  </tbody>

DB Fiddle https://www.db -fiddle.com / f / vSM6hA2Wa3cpRJAqEoDMKZ / 0

1 Ответ

0 голосов
/ 03 ноября 2018

Я сам решил свой вопрос. Проблема была в модели, контроллере и представлении.

controller.php

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Cuidadhrs extends CI_Controller {

    public function index()
    {

        $this->load->view('template/header');
        $this->load->model('Cuidadhrs_model');
        $hours['hours'] = $this->Cuidadhrs_model->cuidadhrs();
        $this->load->view('pages/cuidadhrs_view', $hours);
        $this->load->view('template/footer');
    }
}

model.php

    <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Cuidadhrs_model extends CI_Model
{
  public function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
  public function cuidadhrs()
  {

    $sql = "SELECT a.cuidad_id, a.bc100a, COALESCE(a.bc100a - (SELECT b.bc100a FROM cuidadrun b WHERE a.cuidad_id = b.cuidad_id + 1), a.bc100a) AS diffbc100a FROM cuidadrun a";
    $query = $this->db->query($sql);
    return $query->result_array();

  }
}

view.php

    <table id="cuidadhrs" class="table table-striped table-bordered dt-responsive nowrap" cellspacing="0" width="100%">
      <thead>
        <th>ID</th>
        <th>BC-100a Hourmeter</th>
        <th>Daily Hrs.</th>
      </thead>
      <tbody>
        <?php foreach($hours as $hrs){ ?>
        <tr>
          <td><?php echo $hrs['cuidad_id']; ?></td>
          <td><?php echo $hrs['bc100a']; ?></td>
          <td><?php echo $hrs['diffbc100a']; ?></td>
        </tr>
      </tbody>
      <?php } ?>
      <?php $this->output->enable_profiler(TRUE); ?>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...