Ahmad W
Ahmad W

Reputation: 51

Get data based on the previous month

I want to get price data based on the previous month's id or row before which is in id_head_report table_report

+-----------------------------------------------------------------------+
| id_report | id_head_report | date_report | price_now | price_previous |
+-----------------------------------------------------------------------+
| 1         |      3         |  2019/01/30 | 55,000    |                | 
+-----------------------------------------------------------------------+
| 2         |      3         |  2019/02/29 | 1,000     | 55,000         | 
+-----------------------------------------------------------------------+
| 3         |      4         |  2019/01/30 | 1,000     |                | 
+-----------------------------------------------------------------------+
| 4         |      4         |  2019/02/29 | 2,000     |                | 
+-----------------------------------------------------------------------+

controller_report

$id = $this->report_model->get_by_id($id);
$price_now = $this->db->query("SELECT `price_now ` FROM `table_report` Where `date_report`=".date('M Y d', strtotime('-1 months'))." AND `id_head_report`=$id)->row();

$row = $this->report_model->get_by_id($id);
if ($row) {
$data = array( 'button' => 'Update','action' => 
         site_url('controller_report/update_report'),
  'id_report '      => set_value('id_report ', $row->id_report ),
  'id_head_report ' => set_value('id_head_report ', $row->id_head_report ),
  'date_report'     => set_value('date_report', $row->date_report),
  'price_now'       => set_value('price_now', $row->price_now),
  'price_previous'  => $price_previous,

  }
);

view_report

<td align='right'>
  <label for="decimal"><?php echo form_error('price_previous') ?></label>
  <input style="background-color:#FFFF42" type="text" class="form-control" name="price_previous" id="price_previous" placeholder="price_previous" value="<?php echo $price_previous; ?>" />
</td>

update for price previous month's id, but this doesn't work there is another solution?

Upvotes: 0

Views: 60

Answers (1)

K.B
K.B

Reputation: 885

    $id = $this->report_model->get_by_id($id);
    $price_now_query = $this->db->query("SELECT `price_now ` FROM `table_report` Where `date_report` IS BETWEEN (CURRENT_DATE() - INTERVAL 1 MONTH) AND CURRENT_DATE() AND `id_head_report`=$id");
    // CURRENT_DATE() - INTERVAL 1 MONTH - will get previous-month data
    $price_now = []
    if ($price_now_query && $price_now_query->num_rows() > 0) {
       $price_now = $price_now_query->row();
    }


    $row = $this->report_model->get_by_id($id);
    if ($row) {
    $data = array( 'button' => 'Update','action' => 
             site_url('controller_report/update_report'),
      'id_report '      => set_value('id_report ', $row->id_report ),
      'id_head_report ' => set_value('id_head_report ', $row->id_head_report ),
      'date_report'     => set_value('date_report', $row->date_report),
      'price_now'       => set_value('price_now', $row->price_now),
      'price_previous'  => $price_previous,

      }
    );

Upvotes: 1

Related Questions