基于一个表id获取odeigniter中另一个表的值

时间:2016-11-22 02:35:59

标签: php mysql codeigniter

我创建了两个表。一个是abprodut_detail,另一个是tbproduct_detail

1.abproduct_deatil结构

id    product_id        product_name       cost_price     selling_price

7        4          Alentin DS 400 Tablet      55           60

我创建了一个像这样的表单

<table class="table table-borderd table-hover">
                <thead>
                    <tr>
                        <th>Product Name</th>
                        <th>Price</th>
                        <th>Quantity</th>
                        <th>Total</th>
                        <th><input type="button" class="btn btn-primary addmore" value="+"></th>
                    </tr>
                </thead>
                <tbody id="itemlist2">
                    <tr id="tr_1">
                          <td class="prod_c">
                            <select class="select-product form-control" id="itemName_1" name="product_name[]">
                              <option value="">
                      </option>
                         <?php
                        foreach ($product as $key ):
                          ?>
                         <option value="<?php echo $key['id']  ?>">
                           <?php echo $key['product_name'] ?>
                         </option>
                        <?php  endforeach; ?>
                            </select>
                        </td>

                        <td>   
                        <input type="text" name="price[]" id="price_1" class="price form-control" value=""  data-cell="C1">
                       </td>

                        <td><input type="text" data-cell="D1" name="quantity[]" id="quantity_1" class="qty form-control"></td>
                        <td><input type="text" data-cell="E1" name="discount[]" id="discount_1" class="form-control"></td>
                        <td><input type="text" data-cell="F1" data-formula="(C1*D1)-(C1*D1*E1/100)" name="total[]" id="total_1" class="amount form-control"></td> 
                  </tr>
              </tbody>
            </table>

我选择来自abproduct_detail的所有数据并插入到tbproduct_detail。插入到tbproduct_detail后看起来就像这个。这意味着从选择选项i存储的产品ID号到product_name。

2.tbproduct_detail结构

   id    product_id        product_name   quantity      price

   19      16                 7               5          60

我想在我的编辑视图页面上显示这样的结构

 id    product_id        product_name         quantity     price

 19      16         Alentin DS 400 Tablet       5            60

您会注意到abproduct_deatil,id = tbproduct_detai,product_name

我想在编辑视图页面上合并2个表格和查看数据。

我的编辑视图页

<thead>
                    <tr>
                        <th>ProductName</th>
                        <th>Quantity</th>
                        <th>Price</th>

                    </tr>
                </thead>
                <tbody class="detail">
                   <?php 
                     if($rows->num_rows() > 0)
                     {
                        foreach($rows->result() as $d)
                        {
                            ?>
                                 <tr>
                                    <td><input type="text" value="<?= $d->product_name ?>" name="product_name[]" class="form-control"></td>
                                    <td><input type="text" value="<?= $d->quantity ?>" name="quantity[]" class="form-control"></td>
                                    <td><input type="text" value="<?= $d->price ?>" name="price[]" class="form-control"></td>

                                </tr>
                            <?php 
                        }
                     }
                   ?>

                </tbody>
            </table>

我的控制器

public function edit($id)
{

    $data['rows']= $this->db->query("SELECT * FROM tbproduct_detail WHERE product_id = '$id'");
    $this->load->view('product/edit',$data);
}

我不知道怎么做?请帮我。我是这个论坛的新手,也是codeigniter的新手。

2 个答案:

答案 0 :(得分:0)

尝试在控制器中执行以下查询。

$data['rows']= $this->db->query("SELECT a.id, a.product_id, b.product_name, a.quantity,a.price FROM tbproduct_detail a, abprodut_detail b  WHERE a.product_name= b.id AND a.product_id = '$id'");

关闭主题,最好使用模型文件来编写查询。

答案 1 :(得分:0)

在您的控制器中使用JOIN查询。

您的预期查询是:

select a.id, a.product_id, b.product_name, a.quantity, a.price from tbproduct_detail a join abproduct_deatil b on a.product_name = b.id WHERE a.product_id = '$id'

所以,最终代码是

public function edit($id)
{
    $data['rows']= $this->db->query("select a.id, a.product_id, b.product_name, a.quantity, a.price
    from tbproduct_detail a join abproduct_deatil b
    on a.product_name = b.id WHERE a.product_id = '$id'");

    $this->load->view('product/edit',$data);
}