Search code examples
phpcodeigniterphpmyadmincodeigniter-2codeigniter-3

Get Data Detail By ID - CODEIGNITER


when i get the data by id, just only display first row from table

This is my controller

public function getDetail($id=true)
{

    $data['detail'] = $this->vendor_model->getDetail($id);
    $this->load->view('vendor/detailvendor',$data);

}

this is my model

 public function getDetail($id)
{

    $this->db->where('no_spk',$id);
    $query = $this->db->query("select a.no_spk, a.nama_pekerjaan, a.alamat, a.latitude, a.longitude, b.nama_vendor, c.progress, c.keterangan, c.gambar, c.gambar2, c.gambar3, d.namapekerja from vendor as b inner join pekerjaan as a on b.id_vendor = a.id_vendor inner join progress as c on c.no_spk = a.no_spk inner join pekerja as d on d.id_pekerja=c.id_pekerja");
    return $query->result();
}

And, this is my view

<?php echo form_open_multipart('homevendor/getDetail'.$this->uri->segment(4)); ?>
<?php echo $detail[0]->no_spk?><br>
<?php echo $detail[0]->nama_pekerjaan?><br>
<?php echo $detail[0]->progress?><br>
<?php echo form_close();?>

the result isview on website content of table, there are 2 data but only show first data

please help me


Solution

  • 1.For getting and showing all records, only change view file code like below:-

     <?php echo form_open_multipart('homevendor/getDetail'.$this->uri->segment(4)); ?>
      <?php foreach($detail as $deta){?>
        <?php echo $deta->no_spk?><br>
        <?php echo $deta->nama_pekerjaan?><br>
        <?php echo $deta->progress?><br>
      <?php }?>
    <?php echo form_close();?>
    

    2.For getting and showing single records, use LIMI 1 in query and change view code also like below:-

    Modal code:-

    public function getDetail($id){
       $this->db->where('no_spk',$id);
       $query = $this->db->query("select a.no_spk, a.nama_pekerjaan, a.alamat, a.latitude, a.longitude, b.nama_vendor, c.progress, c.keterangan, c.gambar, c.gambar2, c.gambar3, d.namapekerja from vendor as b inner join pekerjaan as a on b.id_vendor = a.id_vendor inner join progress as c on c.no_spk = a.no_spk inner join pekerja as d on d.id_pekerja=c.id_pekerja LIMIT 1");
       return $query->result();
    }
    

    And view:-

    <?php echo form_open_multipart('homevendor/getDetail'.$this->uri->segment(4)); ?>
      <?php foreach($detail as $deta){?>
        <?php echo $deta->no_spk?><br>
        <?php echo $deta->nama_pekerjaan?><br>
        <?php echo $deta->progress?><br>
      <?php }?>
    <?php echo form_close();?>