【问题标题】:Get user products with using user_id in codeigniter在 codeigniter 中使用 user_id 获取用户产品
【发布时间】:2017-11-15 19:56:20
【问题描述】:

大家好,我正在使用 codeigniter 制作网站,并且正在尝试为其他用户个人资料制作页面。在另一个用户的个人资料上,我想显示该用户上传的所有产品。我尝试像您自己的用户配置文件一样执行此操作,但我使用的是会话 user_id。

这就是我现在拥有的:

控制器功能:

public function userdetails($user_id)
 {
  //load the model
  $this->load->model('User_model');


  $data['userdetail_list'] = $this->User_model->getdata($user_id);
  $data['products'] = $this->User_model->userproducts();
  $this->load->view('profiel_user',$data);

 }

模型中的功能:

public function userproducts($user_id)
{
    $this->db->where('user_id',$user_id);
    $query = $this->db->get('products');
    if($query->num_rows()>0)
    {
       return $query->result_array();
    }
    return array();
}

因此,当我在用户个人资料页面上时,我想显示属于我点击的个人资料 user_id 的所有产品。

我也已经有了这个函数来获取我所在的个人资料页面的 user_id:

function getdata($user_id){
  $this->db->select("*"); 
  $this->db->from('users');
  $this->db->where('user_id', $user_id);
  $query = $this->db->get();
  return $query->result();
 }

有人知道我该怎么做的模型代码吗? 谢谢

数据库信息:

表 1:产品:

product_id
product_naam
product_beschrijving
user_id
ophaal_plaats
product_foto
product_foto_thumb
date_created
date_updated
category_id

table 2 : users:

user_id
email
voornaam
achternaam
beschrijving
profiel_foto

【问题讨论】:

  • 如何使获取具有相同 user_id 的产品功能?
  • 您已经登录并且想要其他用户配置文件中的产品..对吗?
  • 是的,我需要一个模型函数,所以当我点击另一个用户配置文件时,它会显示他所有具有相同 user_id 的产品。所以他的所有产品在 products 表和 users 表中都有相同的 user_id。
  • 所以也许可以代替这个查询: $query= $this->db->query("SELECT * FROM products");你可以告诉我一个查询如何获得具有相同 user_id 的所有产品?
  • @Learningprogrammingphp44 请在下面查看我的答案...

标签: php codeigniter codeigniter-3


【解决方案1】:

你可以修改你的功能如下

function getdata($user_id){
  $this->db->select("products.*,users.*"); 
  $this->db->from('products');
  $this->db->join('users','users.user_id = products.user_id','left');
  $this->db->where('users.user_id', $user_id);
  $query = $this->db->get();
  return $query->result();
 } 

【讨论】:

  • 但是我还需要在控制器中做这样的事情吗?:$data['products'] = $this->User_model->userproducts();
  • 看我改变我的问题,告诉你我现在有什么好的
  • @Learningprogrammingphp44 现在请看我的回答。顺便说一句,我认为你不需要users.*
  • 我需要在控制器中做什么?
  • 出现此错误:发生数据库错误错误号:1052 列 'user_id' in where 子句不明确 SELECT users.*, products.* FROM users LEFT JOIN products ON products.user_id = users.user_id WHERE user_id IS NULL 文件名:models/User_model.php 行号:24
【解决方案2】:

创建一个类似的函数

public function product_other_user_id($user_id)
      {
          $this->db->where('user_id', $user_id);
          return $this->db->get('products')->result();
      }

然后在你的控制器中调用该函数,例如在你有 user_id 之后

$userProducts = product_other_user_id($user_id);

当您返回时,将用户及其产品组合到一个数组或关联数组中,无论您觉得合适。

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-07
    相关资源
    最近更新 更多