【问题标题】:The table displays data in one column into the data row in codeigniter?该表将一列中的数据显示到codeigniter的数据行中?
【发布时间】:2017-04-08 06:51:24
【问题描述】:

请帮助我,我使用 CodeIgniter 和 mvp 程序。我有一个这样的数据库:

如果我想在这样的表格视图中显示数据,可以吗?

我只能在某个日期向您显示,当在另一个日期检索数据时 id_status 一切都不起作用。

只有一个日期的控制器。

public function status()
{
    $tanggal1 = '2017-03-28';
    $data['status'] = $this->M_Reports->status($tanggal1);
    $this->load->view('homepage/template');
    $this->load->view('report/status', $data);
}

型号:

public function status($tanggal1) {
        $sql = "SELECT operasional.id_ops, operasional.id_status, operasional.tanggal, peralatan.nm_peralatan FROM operasional INNER JOIN peralatan ON operasional.id_peralatan = peralatan.id_peralatan WHERE tanggal='$tanggal1' ORDER BY id_ops";
        return $this->db->query($sql)->result();
}

然后查看:

<?php
  $start = 0;
  foreach($status as $data) {
?>
  <tr>
    <td><?php echo ++$start ?> </td>
    <td><?php echo $data->nm_peralatan ?></td>
    <td><?php echo $data->id_status ?></td>
    <td><?php echo $data->tanggal ?></td>
  </tr>
<?php
  }
?>

【问题讨论】:

  • 为什么不呢,你的观点是基于你从数据库中得到的。您只需要创建一个查询即可从您的数据库表中获取所需的索引。
  • 您认为日期是静态的还是动态的?
  • @georoot 当我必须在不同日期时循环 id_status 时,我感到很困惑。帮帮我
  • @MalikMudassar 我希望日期是动态的,我将在查询中使用 between
  • 回答太长了,我试试

标签: php codeigniter


【解决方案1】:

你的模型函数应该是这样的

public function status($top_of_date)
{
    // This will get all dates
    $dates=$this->db->distinct()->select('tanggal')->from('operasional')->get()->result_array();
    // This will get all patients / peralatan
    $patients=$this->db->distinct()->select('id_peralatan')->from('operasional')->get()->result_array();
    // Loop through peralatan
    for($i=0;$i<count($patients);$i++)
    {
        $st=$this->select('id_peralatan')->from('operasional')->WHERE('id_peralatan',$patients[$i])->get()->result_array();
        // Start Creating an array for this index
        $data[$i]=array(
            'id_peralatan'=>$st[0]
        );
        // loop through dates
        for($j=0;$j<count($dates);$j++)
        {
            //if date is greater than top of date
            if($dates[$i]>$top_of_date)
            {
                $st=$this->db->select('id_status')->from('operasional')->WHERE('tanggal',$dates[$i])->get()->result_array();
                // Create index and save the status
                $data[$i]['top_of_date']=$st[0]['id_status'];
            }
            elseif($dates[$i]<$top_of_date)
            {
                $st=$this->db->select('id_status')->from('operasional')->WHERE('tanggal',$dates[$i])->get()->result_array();
                // Create index and save the status
                $data[$i][$dates[$i]]=$st[0]['id_status'];
            }
        }
    }
    return $data;
}

现在,您只需从您的控制器发送最新消息。喜欢;

public function status()
{
   $tanggal_top = '2017-03-28';
   $data['status'] = $this->M_Reports->status($tanggal_top);
   $this->load->view('homepage/template');
   $this->load->view('report/status', $data);
}

【讨论】:

  • 谢谢先生。 @Malik,我会试试这个;)
  • 亲爱的先生。 @Malik Mudassar,我在 $st=$this->db->select('id_peralatan')->from('operasional')->WHERE('id_peralatan',$patients[$i])- >get()->result_array();因为 $patiensts 仍然是数组,所以像这样的错误 SELECT id_peralatan FROM operasional WHERE id_peralatan = Array
  • 如果您需要长时间的讨论。请和我一起聊天chat.stackoverflow.com/rooms/11/php
  • 对不起先生。 @malik 我无法在聊天中发表评论,因为我没有 20 声望
猜你喜欢
  • 2013-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-15
  • 1970-01-01
相关资源
最近更新 更多