如何在编辑页面显示记录?

我是 MySQL 的新手,我正在使用 CodeIgniter。我有三个名为lead, document, 和 的表bank。


现在我要做的是,在lead表中插入唯一的客户个人信息。在document表中,我正在插入用户文档。在bank表中,我正在插入银行记录。它可以是多个。


插入没有问题。我在从数据库中获取数据时遇到了这个问题。


现在表结构是


带领


id  | name   | mobile     | email  

1   | asdff  |1234567831  |asd@gmail.com

2   | kjhgg  |1231231231  |mnhg@gmail.com

3   | qwsde  |1231233212  |oiuk@gmail.com

<!--many more-->

文档


doc_id  |doc_name    | doc_date  | lead_id |date_of_added

1       |asdasd      |2019-06-24 | 1       |2019-06-16 17:31:07

2       |oiuytr      |2019-06-24 | 2       |2019-06-16 17:31:07

3       |okjhyt      |2019-06-25 | 3       |2019-06-20 20:12:09

<!--many more--> 

银行


bank_id  | bankname  | lead_id |date_of_added

1        | sdasdas   | 1       |2019-06-20 11:41:34

2        | asdasdasd | 1       |2019-06-21 10:41:34

3        | asdakjkh  | 2       |2019-06-21 14:23:12

4        | qwerfgvf  | 1       |2019-06-21 23:56:25

<!--many more--> 

到目前为止,文件和银行之间没有任何联系。我应该使用 id 连接吗?


模型


public function getconfirmLeadinfo($id){

   return  $result = $this->db->select('*')

                     ->from('lead')

                     ->join('document','lead.id=document.lead_id','LEFT')

                     ->join('bank','lead.id=bank.lead_id','LEFT')

                     ->where('lead.id',$id)

                     ->get()

                     ->result();

  }

我得到的输出是


Array

(

    [0] => stdClass Object

        (

            [id] => 1

            [name] => asdff

            [mobile] => 1234567831

            [email] => asd@gmail.com

            [doc_id] => 1

            [doc_name] => asdasd

            [doc_date] => 2019-06-24

            [lead_id] => 1

            [date_of_added] => 2019-06-16 17:31:07

            [bank_id] => 1

            [bankname] => sdasdas

            [lead_id] => 1

            [date_of_added] => 2019-06-20 11:41:34


         )


RISEBY
浏览 223回答 3
3回答

狐的传说

使用两个单独的查询如下:$data = [];$lead = $this->db->select('*')->from('lead')->get()->row();$data['lead'] = $lead;if($lead){&nbsp; $bank = $this->db->select('*')->where('lead_id', $lead->lead_id)->from('bank')->get()->result();$data['bank '] = $bank ;}// you can retrive documet like bank detailsreturn $data然后你可以通过$data查看和使用lead以及bank变量,如果它存在。

潇湘沐

你必须从表中取出不同的记录,我可以看到结果是重复的,所有的细节都是一样的,为什么你不能使用 INNER JOIN 而不是 left。您将通过使用 ->row() 而不是 ->result() 来获得单条记录;然后您可以使用与您在编辑页面中所做的相同的使用 foreach<?php&nbsp;foreach ($result as $key => $value) {&nbsp; &nbsp; if ($value){?>&nbsp; &nbsp; &nbsp; &nbsp; <input type="hidden" name="id[]" value="<?php echo $value->id;?>">&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="name[]" value="<?php echo $value->name;?>">&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="mobile[]" value="<?php echo $value->mobile;?>">&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="email[]" value="<?php echo $value->email;?>">&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="doc_name[]" value="<?php echo $value->doc_name;?>">&nbsp; &nbsp; &nbsp; &nbsp; <input type="text" name="doc_date[]" value="<?php echo $value->doc_date;?>"><?php&nbsp; }}?>
打开App,查看更多内容
随时随地看视频慕课网APP