【问题标题】:Illegal string offset 'antrian_seminggu' in controller (codeigniter)控制器中的非法字符串偏移“antrian_seminggu”(codeigniter)
【发布时间】:2020-05-15 06:52:27
【问题描述】:

我在控制器中的变量“antrian_seminggu”中收到错误的非法字符串偏移。你能告诉我什么问题。之前谢谢。

我的控制器

public function antrian_seminggu()
{

    $tahun = date('Y');
    $bulan = date('m');
    $tanggal = date('d');
    $format = $tahun.'-'.$bulan.'-'.$tanggal;
    $seminggu = abs(6*86400);
    $awal = strtotime($format);
    $akhir = strtotime($format)+$seminggu;
    for($i=$awal; $i <=$akhir;$i+=86400)
    {

        $data=date('Y-m-d', $i);

        $this->db->select('p.nama as nama_pasien,p.alamat as alamat_pasien, pen.id_pendaftaran as id,pen.tanggal_periksa as tgl, l.nama_layanan as layanan_pasien, pen.nama_detail_layanan as detail_layanan, pen.biaya as biaya_total, d.nama as nama_dokter,pen.status as stat, pen.no_antrian as antrian');
        $this->db->from('pasien p, pendaftaran pen, layanan l, dokter d');
        $this->db->where('p.NIK=pen.NIK');
        $this->db->where('pen.id_layanan=l.id_layanan');
        $this->db->where('l.id_dokter=d.id_dokter');
        $this->db->where('pen.tanggal_periksa',$data);
        $this->db->order_by('pen.tanggal_periksa','ASC');
        $this->db->order_by('d.nama','ASC');
        $this->db->order_by('pen.no_antrian','ASC');
        $query=$this->db->get();
        $data['antrian_seminggu']=$query;

        $this->load->view('admin/antrian_data_seminggu',$data);
    }

}

我的看法

            <?php
              $no=0;
              foreach ($antrian_seminggu->result() as $dat) 
              {
            ?>

【问题讨论】:

    标签: php codeigniter controller


    【解决方案1】:

    illegal string offset warning 出现在 array 未正确设置时。这可能是由于多种原因。我正在编写下面的更正代码,必要时会提到 cmets。看看对你有没有帮助。

    控制器

    public function antrian_seminggu()
    {
    
        $tahun = date('Y');
        $bulan = date('m');
        $tanggal = date('d');
        $format = $tahun.'-'.$bulan.'-'.$tanggal;
        $seminggu = abs(6*86400);
        $awal = strtotime($format);
        $akhir = strtotime($format)+$seminggu;
        for($i=$awal; $i <=$akhir;$i+=86400)
        {
    
            $date = date('Y-m-d', $i);
    
            $this->db->select('p.nama as nama_pasien,p.alamat as alamat_pasien, pen.id_pendaftaran as id,pen.tanggal_periksa as tgl, l.nama_layanan as layanan_pasien, pen.nama_detail_layanan as detail_layanan, pen.biaya as biaya_total, d.nama as nama_dokter,pen.status as stat, pen.no_antrian as antrian');
            $this->db->from('pasien p, pendaftaran pen, layanan l, dokter d');
            $this->db->where('p.NIK=pen.NIK');
            $this->db->where('pen.id_layanan=l.id_layanan');
            $this->db->where('l.id_dokter=d.id_dokter');
            $this->db->where('pen.tanggal_periksa',$date);
            $this->db->order_by('pen.tanggal_periksa','ASC');
            $this->db->order_by('d.nama','ASC');
            $this->db->order_by('pen.no_antrian','ASC');
            $query=$this->db->get()->result(); // complete the query here
            $data['antrian_seminggu'][] = $query; // you probably want an array here otherwise the previous value will be overwritten by current value
        }
        $this->load->view('admin/antrian_data_seminggu', $data); // you'd want to load the view only once, so it should be outside the loop.
    }
    

    查看

    <?php
    $no=0;
    foreach ($antrian_seminggu as $dat) 
    {
        var_dump($dat); echo '<br>';   // returns all the data
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2013-09-30
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 1970-01-01
      • 2020-11-29
      • 2017-09-13
      相关资源
      最近更新 更多