Php CodeIgniter返回带有一个对象的联接表查询结果
您好,我正在尝试以这种方式加入表Php CodeIgniter返回带有一个对象的联接表查询结果,php,mysql,Php,Mysql,您好,我正在尝试以这种方式加入表 $this->db->select("users.id,users.name,users.lastname,users.bio,rating.Rating"); $this->db->where('users.id', $id); $this->db->join('video', 'video.user_id = users.id'); $this
$this->db->select("users.id,users.name,users.lastname,users.bio,rating.Rating");
$this->db->where('users.id', $id);
$this->db->join('video', 'video.user_id = users.id');
$this->db->join('rating', 'rating.IDvideo = video.ID');
$results = array();
$results['info'] = $this->db->get('users')->result();
我得到了结果
array (size=1)
'info' =>
array (size=8)
0 =>
object(stdClass)[26]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
public 'Rating' => string '3.5' (length=3)
1 =>
object(stdClass)[27]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
public 'Rating' => string '4.7' (length=3)
2 =>
object(stdClass)[28]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
public 'Rating' => string '1.6' (length=3)
3 =>
object(stdClass)[29]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
public 'Rating' => string '2.6' (length=3)
4 =>
object(stdClass)[30]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
public 'Rating' => string '3.4' (length=3)
5 =>
object(stdClass)[31]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
使用join是否可以通过一个对象获得类似这样的结果
array (size=1)
'info' =>
array (size=8)
0 =>
object(stdClass)[26]
public 'id' => string '1' (length=1)
public 'name' => string 'Vladimir' (length=8)
public 'lastname' => string 'Stus' (length=4)
public 'bio' => string 'Dragi prijatelji, po zanimanju sam PHP programer. Trenutno radim u jednoj poznatoj kompaniji koja se bavi pre svega obrazovanjem i razvojem aplkacija kojima se sti?u nova IT znanja. U slobodno vreme pravim tutorijale o web programiranju, koje možete na?i ' (length=256)
public 'Rating' => string '3.5' (length=3)
public 'Rating' => string '1.5' (length=3)
public 'Rating' => string '2.5' (length=3)public 'Rating' => string '3.5' (length=3)
我的意思是评级来自一个用户,我能在一个对象中获得所有评级而不是多个对象或用户评级的总和吗?就我所知,用MYSQL解决这个问题需要一个帮助,而用SQL是不容易做到的。但是,您可以使用PHP将数据转换为所需的结构,其中“评级”是一个用户的评级数组。您建议进行多重查询吗?您想要的结果没有意义。不能有多个同名的属性
评级。你应该做的是循环搜索结果,并将同一用户ID的所有评分收集到一个数组中。我认为你拥有的数据是好数据。如果你真的想让它看起来更像你在底部展示的东西,那么结构应该更像对象('id'=>1,'name'=>'Vladimir','lastname'=>'Stus','bio'=>'blah','Ratings'=>array())
你也可以使用GROUP_CONCAT(rating.rating)
以逗号分隔的字符串收集所有评级,然后使用explode(“,”,$results->info[$i]->Rating)