简体   繁体   中英

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 is view on website content of table, there are 2 data but only show first data

please help me

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();?>
    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 WHERE c.no_spk=".$id);
    return $query->row();
}

View

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

Explanation

You are looking for to fetch a single row.Use row function instead of result. Codeigniter database class row function returns an object. SO you will be able to use the -> to accessing the object data.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM