[英]Codeigniter active record class join two mysql tables
只想從表評論中獲取user_id和review_text值,從表用戶中選擇id和user_id的 名稱和城市 ,然后將review_text,用戶名和城市返回給控制器。 請幫我。
public function did_get_reviews($item_id){
$this->db->select('user_id','review_text');
$this->db->from('reviews');
$this->db->where('post_id', $item_id);
$user_id = 'user_id' //??
$this->db->select('name','city');
$this->db->from('users');
$this->db->where('id', $user_id);
$query = $this->db->get('review_text','username','city'); //??
if ($query && $query->num_rows() >= 1){
return $query->result();
}
else {
return false;
}
}
更新1:我只是試圖聯接表,但它僅返回review_text的值,但我也想獲取name和city的值。 請檢查以下代碼:
public function did_get_reviews($item_id){
$this->db->select('reviews.review_text','users.name','users.city');
$this->db->from('reviews','users');
$this->db->where('reviews.post_id', $item_id);
$this->db->join('users','reviews.user_id = users.user_id');
$query = $this->db->get();
if ($query && $query->num_rows() >= 1){
return $query->result();
}
else {
return false;
}
}
我認為你需要使用SQL 聯接查詢。 如果您使用此代碼,則可以訪問所需的內容
$result = $this->db->select('review, username, city')
->from('reviews')
->join('city', 'city.user_id = review.user_id')
->get();
print_r($result);
有關如何在codeigniter中編寫聯接查詢(向左,向內或向右)的更多信息,請參見此鏈接
我希望這段代碼可以解決您的問題
UPDATE
在您的新問題中。 您的代碼有一些錯誤。 您需要以這種方式編寫選擇
public function did_get_reviews($item_id){
$this->db->select('reviews.review_text,users.name,users.city')
->from('reviews','users')
->where('reviews.post_id', $item_id)
->join('users','reviews.user_id = users.user_id');
$query = $this->db->get();
if ($query && $query->num_rows() >= 1){
return $query->result();
}
else {
return false;
}
}
在codeigniter中選擇活動記錄; 任何列名稱彼此通過分離,
僅(不是由'
和,
)
在codeigniter 文檔中寫道
允許您編寫查詢的SELECT部分:
$ this-> db-> select('title,content,date');
$ query = $ this-> db-> get('mytable');
//產生:SELECT標題,內容,日期from mytable
您可以使用以下方法獲取user_id
的值:
$this->db->select('user_id','review_text');
$this->db->from('reviews');
$this->db->where('post_id', $item_id);
$result = $this->db->get();
print_r($result);
使用相同的$this->db->get();
以獲取第二個查詢的值。 一旦在變量中獲取值,就可以對其進行迭代。 就像是:
foreach ($result->result() as $row)
{
echo $row->name;
echo $row->city;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.