如何使用user_id从数据库中获取用户详细信息并显示它们

时间:2017-09-20 11:44:45

标签: php codeigniter

我正在使用CodeIgniter框架创建一个网站,以便用户可以向网站添加产品。现在我的问题是:如何使用products表中的user_id从数据库中获取用户的详细信息并将其显示在产品旁边? 因此,例如,当我点击某个产品时,我想要链接到上传产品的用户的个人资料,但我不知道我该怎么做。

数据库表信息:

table users:

user_id (primary_key)
email
voornaam
achternaam
beschrijving


table products:

product_id (primary_key)
product_naam
product_beschrijving
user_id
category_id

我在模型文件中的功能:

public function get_product_details($product_id) {
    $this->db->select('products.*, users.*');
    $this->db->from('products');
    $this->db->join('users', 'users.user_id = products.user_id', 'left');
    $this->db->where('product_id', $product_id);
    $query = $this->db->get();
    $result = $query->row_array();
    if (!empty($result)) {
        return $result;
    } else {
        return array();
    }
}

1 个答案:

答案 0 :(得分:4)

使用基于user_id的连接查询从数据库中的2个表中获取详细信息。

像这样:

型号:

public function get_product_details($product_id)
{
    $this->db->select('users.user_id,users.email,users.voornam,products.product_id,products.category_id,products.product_naam');
    $this->db->from('users');
    $this->db->join('products','products.user_id = users.user_id');
    $this->db->where('product_id', $product_id);
    $query = $this->db->get();
    if($query->num_rows()>0)
    {
       return $query->result_array();
    }
}

控制器:

public function edit($product_id)
{
    $data['products_list'] = $this->your_model->get_product_details($product_id);
    $this->load->view('your_view_filename',$data);
}

// data from $data['products_list'] in controller.

查看:

<?php print_r($products_list); //for refference
    foreach($products_list as $row)
                    {
                    ?>
                    <tr>
                        <td><?php echo $row['email'];?></td>
                        <td><?php echo $row['voornam'];?></td>
                        <td><?php echo $row['product_naam'];?></td>
                            etc...
                     </tr>
   <?php } ?>