首页 > 解决方案 > 如何在编辑页面显示记录?

问题描述

我是 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

         )
[1] => 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] => 2
            [bankname] => asdasdasd
            [lead_id] => 1
            [date_of_added] => 2019-06-21 10:41:34

         )
[2] => 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] => 4
            [bankname] => qwerfgvf
            [lead_id] => 1
            [date_of_added] => 2019-06-21 23:56:25

         )
)

现在我在编辑页面上,我必须显示数据。

if ($post){?>
<input type="text" name="name" value="<?php echo $post->name;?>">
<input type="text" name="mobile" value="<?php echo $post->mobile;?>">
<input type="text" name="email" value="<?php echo $post->email;?>">

<input type="text" name="doc_name" value="<?php echo $post->doc_name;?>">
<input type="text" name="doc_date" value="<?php echo $post->doc_date;?>">
 how do I display my bank details here? should I use something like this
    <?php
 foreach ($result as $key => $value) {
<input type="text" name="bank[]" value="$value->bankname">
}
}?>

你能帮帮我吗?

标签: phpmysqlcodeigniter-3

解决方案


  1. 您必须从表中获取不同的记录,我可以看到结果重复所有细节都相同,为什么您不能使用 INNER JOIN 而不是 left。
  2. 您将使用 ->row() 而不是 ->result(); 获得单条记录;
  3. 然后您可以使用与您在编辑页面中相同的方法

使用 foreach

<?php
 foreach ($result as $key => $value) {
    if ($value){?>
        <input type="hidden" name="id[]" value="<?php echo $value->id;?>">
        <input type="text" name="name[]" value="<?php echo $value->name;?>">
        <input type="text" name="mobile[]" value="<?php echo $value->mobile;?>">
        <input type="text" name="email[]" value="<?php echo $value->email;?>">
        <input type="text" name="doc_name[]" value="<?php echo $value->doc_name;?>">
        <input type="text" name="doc_date[]" value="<?php echo $value->doc_date;?>">
<?php  }
}
?>

推荐阅读